Awesome
eslint-plugin-ember-suave ![Build Status](https://travis-ci.org/DockYard/eslint-plugin-ember-suave.svg?branch=master)
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