Skip to content

DockYard/eslint-plugin-ember-suave

Repository files navigation

eslint-plugin-ember-suave Build Status

eslint-plugin-ember-suave is built and maintained by DockYard, contact us for expert Ember.js consulting.

This ESLint plugin exports custom linting rules and a recommended configuration based on DockYard's styleguide. It is tailored for Ember apps specifically, and may be used in conjunction with ember-cli-eslint, or with the ESLint CLI.

Using the plugin with Ember CLI

Installation

Install the plugin as a dev dependency in your Ember CLI project.

npm install --save-dev eslint-plugin-ember-suave

This will make the plugin available to ESLint.

Next, install the ember-cli-eslint addon so that your app can be linted during development and testing. This will also uninstall ember-cli-jshint since there is no need to have both linters running at the same time.

ember install ember-cli-eslint

Upgrading from ember-suave

If you are upgrading from ember-suave you will have to make sure that you remove the addon from your project. Otherwise you will have two linters running.

npm uninstall --save-dev ember-suave

Configuration

The ember-cli-eslint addon blueprint generates a .eslintrc.js configuration file at the root of the project. By default, it is set to extend ESLint's recommended subset of core linting rules.

Add the plugin and its recommended configuration to the list of extensions:

// .eslintrc.js

module.exports = {
  // ...
  plugins: [
    'ember',
    'ember-suave'
  ],
  extends: [
    'eslint:recommended',
    'plugin:ember-suave/recommended'
  ],
  rules: {
  }
  // ...
};

Overriding Rules

Both core rules (provided by ESLint) and custom rules (prefixed by ember-suave/) from the plugin's recommended configuration can be turned off or modified, if desired.

// .eslintrc.js

module.exports = {
  // ...
  plugins: [
    'ember',
    'ember-suave'
  ],
  extends: [
    'eslint:recommended',
    'plugin:ember-suave/recommended'
  ],
  rules: {
    'quotes': ['error', 'double'],
    'ember-suave/no-const-outside-module-scope': 'off'
  }
};

Working with Editors and the CLI

If you use ESLint in an editor or from the command line, you'll need to install eslint-plugin-ember-suave globally too.

npm install -g eslint-plugin-ember-suave

Rules

A list of custom rules and documentation can be found here.

Development

The provided Yeoman generator should be used for creating rules. In doing so, each rule will have a rule, documentation and test file created automatically. All rules should be tested!

Tests can be run using npm test. Additionally, AST Explorer is a great way to look into the structure of a node to determine what to expect.

Authors

Contributors

Versioning

This library follows Semantic Versioning

Legal

DockYard, Inc. © 2016

@dockyard

Licensed under the MIT license