eslint-config-strict
eslint-config-strict copied to clipboard
ESLint sharable config for strict linting
eslint-config-strict
ESLint sharable config for strict linting.
Rules
Every rule is documented, justified, and has examples within the rules folder. If you feel like a rule is wrong, take a read of this file, or refer others to it!
Installation
Install this config package and ESLint:
$ npm install --save-dev eslint-config-strict
If you're using npm < v3 you'll also need to install all of the dependencies of this project:
$ npm install --save-dev eslint eslint-plugin-filenames
If you use React, also have a look at the eslint-config-strict-react plugin.
Usage
This set of configs is meant to be extended on a per-project basis as necessary using ESLint's shareable configs feature.
To start, you probably want to use pick either strict/es6 or strict/es5 (note:
strict can be used as an alias for strict/es6). You can then layer additional
rulesets on top using eslint, the additive rules are:
This package includes the following configurations:
strict/mocha(addsenv.mochatrue,assert,expect,mustandshouldare added as globals, andfunc-names,padded-blocksandmax-nested-callbacksrules are explicitly turned off)strict/browser(simply setsenv.browserto true)strict/d3(relaxes strict identifier rules, allowing for identifiers liked3,d,dx,dy)strict/babel(for use with theeslint-plugin-babelplugin)
How to use
Simply define your .eslintrc (or add a eslintConfig object to package.json)
like so:
{
"extends": ["strict"]
}
Add any additional plugins you want, for example:
{
"extends": ["strict", "strict/browser"]
}
Also, you can define a test/.eslintrc to override the projects main one:
{
"extends": ["strict", "strict/browser", "strict/mocha"]
}
If your project is a front-end project and you're not transpiling ES6 code, you
might have an .eslintrc that looks like this:
{
"extends": ["strict/es5", "strict/browser"]
}
Feel free to define additional globals or rules, or override them as you see fit:
{
"extends": ["strict"],
"globals": {
"blarg": true
},
"rules": {
"eol-last": 0
}
}
For more details about how shareable configs work, see the ESLint documentation.