ESLint Config Standards
Install
$ npm install eslint babel-eslint @neogeek/eslint-config-standards --save-dev
Then create a .eslintrc
file in the root of your project with the following contents:
{
"extends": ["@neogeek/eslint-config-standards"]
}
Configuration
See http://eslint.org/docs/rules/ for more information.
This package enables errors on all of the available flags except the following:
Best Practices
Flag | Description | Value |
---|---|---|
dot-location | Enforce consistent newlines before and after dots | 0 |
no-magic-number | Disallow Magic Numbers | [2, {"ignore": [-1, 0, 1]}] |
ECMAScript 6
Flag | Description | Value |
---|---|---|
arrow-parens | require parentheses around arrow function arguments | ["error", "as-needed"] |
Stylistic Issues
Flag | Description | Value |
---|---|---|
implicit-arrow-linebreak | Enforce the location of arrow function bodies with implicit returns | 0 |
max-len | Enforce a maximum line length | [1, 80, 4, {"ignoreComments": true, "ignoreTemplateLiterals": true}] |
max-lines | Enforce a maximum file length | 0 |
object-curly-newline | Enforce consistent line breaks inside braces | 0 |
one-var | Enforce variables to be declared either together or separately in functions | 0 |
quotes | Enforce the consistent use of either backticks, double, or single quotes | [2, "single"] |
spaced-comment | enforce consistent spacing after the // or /* in a comment |
["error", "always", {"block": {"markers": ["!"]}}] |
Variables
Flag | Description | Value |
---|---|---|
no-shadow | disallow variable declarations from shadowing variables declared in the outer scope | ["error", {"allow": ["err"]}] |
no-unused-vars | disallow unused variables | "no-unused-vars": ["warn", {"ignoreRestSiblings": true}] |
Extended .eslintrc
Configuration
{
"extends": [
"@neogeek/eslint-config-standards/.eslintrc-best-practices",
"@neogeek/eslint-config-standards/.eslintrc-ecmascript-6",
"@neogeek/eslint-config-standards/.eslintrc-possible-errors",
"@neogeek/eslint-config-standards/.eslintrc-react",
"@neogeek/eslint-config-standards/.eslintrc-strict-mode",
"@neogeek/eslint-config-standards/.eslintrc-stylistic-issues",
"@neogeek/eslint-config-standards/.eslintrc-variables"
],
"rules": {
"quotes": [2, "double"]
}
}
{
"extends": ["@neogeek/eslint-config-standards/.eslintrc-tests"]
}
Prettier Config
Create a .prettierrc
file with the following contents:
{
"printWidth": 80,
"tabWidth": 4
}
Install the prettier-eslint-cli.
$ npm install prettier-eslint-cli --save-dev
Add NPM script for automation.
{
"scripts": {
"prettier": "prettier-eslint --eslint-config-path .eslintrc --write \"src/**/*.js\""
}
}