/ember-template-lint-config

Clark’s config for ember-template-lint

Primary LanguageJavaScriptISC LicenseISC






CLARK




@clark/ember-template-lint-config

Node.js CI npm version Download Total code style: prettier CLARK Open Source
dependencies Status devDependencies Status

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-lint

Update 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:

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:

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.