Skip to content

patricklx/eslint-plugin-ember-template-lint

Repository files navigation

eslint-plugin-hbs-template

Provide linting (via ember-template-lint) for hbs templates files, template string literals and gts,gjs (also enables eslint to run its other rules in gts/gjs)

  • no extra config file needed

  • no need to run extra tool for linting

  • no need to run extra tool to fix lint issues

  • no need to implement & maintain editor support for ember-template-lint

  • it also has the advantage that it can know the scope for some template-lint rules, like no-implicit-this, and remove those messages

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-ember-template-lint:

$ npm install eslint-plugin-ember-template-lint --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-ember-template-lint globally.

Usage

Add ember-template-lint to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

2. Modify your .eslintrc.js

you can use the presets from here https://github.com/ember-template-lint/ember-template-lint#presets like this: plugin:ember-template-lint/<preset>

to just use the .template-lintrc.js config file just use plugin:ember-template-lint/config

to load ember-template-lint plugins in eslinrc you need to manually register them:

require('eslint-plugin-ember-template-lint/lib/ember-template-lint/config').registerPlugin('ember-template-lint-plugin-prettier');

IMPORTANT

Do NOT set parser to anything in your .eslintrc.js as it will override the parser from here

for typescript parser you can extend its base config, then it will work correctly

// .eslintrc.js
// optional:
require('eslint-plugin-ember-template-lint/lib/ember-template-lint/config').registerPlugin('ember-template-lint-plugin-prettier');


module.exports = {
  overrides: [
    {
      files: ['**/*.hbs'],
      parser: 'ember-template-lint/lib/parser/hbs-parser',
      extends: [
        'plugin:ember-template-lint/config',
        'plugin:ember-template-lint/recommended',
      ],
    },
    {
      files: ['**/*.gjs'],
      parser: 'ember-eslint-parser',
      extends: [
        'plugin:ember-template-lint/config',
        'plugin:ember-template-lint/recommended',
      ],
    },
  ],
};