@clark/ember-template-lint-config v0.2.2
@clark/ember-template-lint-config
The configuration for ember-template-lint we use across
all of our Ember.js projects.
Installation
Install the dependencies:
# Install `ember-template-lint` itself and our config
yarn add -D ember-template-lint @clark/ember-template-lint-config
# Remove the linting integration into ember-cli
yarn remove ember-cli-template-lintUpdate or create the .template-lintrc.js:
'use strict';
module.exports = {
plugins: ['@clark/ember-template-lint-config'],
extends: 'clark:octane'
};Add the lint:hbs script to the package.json, in case it does not exist yet:
{
"name": "my-awesome-app",
"scripts": {
"lint:hbs": "ember-template-lint ."
},
"devDependencies": {
"@clark/ember-template-lint-config": "^0.1.0",
"ember-template-lint:" "^1.8.1"
}
}Don't forget to run yarn lint:hbs in CI!
Usage
This package exports two configurations you can extend from.
clark:octane
This is the recommended default configuration to use. It extends the official
octane config and makes the following changes to it:
no-curly-component-invocation: whitelist all known helperssimple-unless: allow to use a single, simple helper in{{unless}}
clark:legacy
This config extends clark:octane and disables a few rules, so
that the linter does not go crazy on code that was written pre-Octane. Use this
config for legacy packages, when clark:octane throws too many, not easily
fixable errors. Ideally though, migrate your code.
The following rules are disabled:
no-implicit-this: prefix context access withthis.and component arguments with@no-curly-component-invocation: migrate curly component invocation to angle bracket invocationsno-action: use the{{on}}modifier and(fn)helper over{{action}}
Q & A
Why remove ember-cli-template-lint?
ember-cli-template-lint is a wrapper around the actual ember-template-lint,
that integrates it into the linting pipeline of ember-cli. We strongly agree
with RFC #121 "Remove ember-cli-eslint" and believe that the
linting pipeline, as it is implemented in ember-cli, is hacky and should not
run alongside the browser tests.
Instead we run all our lint jobs as extra steps in CI.