These are my preferred code style linting rules. You'll probably hate them.
No tricks, no magic, no useless code, no complicated code. Very opinionated about all these spaces, quotes, parentheses. A bit of sanity applied, but not too much.
Rules are prepared for ES6+ code. Parser is set to ecmaVersion
9. Some rules may require ES6+ code so you'd better
update your transpiler.
npm i eslint @dzek69/eslint-config-base --save-dev
Put .eslintrc.json
in your root directory and fill it with:
{
"extends": [
"@dzek69/eslint-config-base"
]
}
Make sure to set your other config, like env
, see eslint config guide.
Then to lint src
and test
directories with subdirectories run:
npx eslint src/**/*.js src/*.js test/**/*.js test/*.js
Some of these rules may be annoying in tests files (like max lines number limit or not allowing global describe
or
other test runner methods).
Use overrides in your config:
{
"overrides": [
{
"files": ["test/*.js", "test/**/*.js"],
"env": {
"mocha": true
},
"rules": {
"max-lines": "off"
}
}
]
}
See eslint config guide for more details about env
options.
This is full config that I am using in one of my projects, feel free to take inspiration:
{
"extends": [
"@dzek69/eslint-config-base"
],
"env": {
"node": true
},
"overrides": [
{
"files": ["src/*.spec.js", "src/**/*.spec.js"],
"env": {
"mocha": true
},
"rules": {
"global-require": "off",
"max-lines": "off",
"max-lines-per-function": "off",
"max-statements": "off",
"no-magic-numbers": "off"
}
}
]
}
Add:
--no-error-on-unmatched-pattern
- to prevent errors while you start working on your lib and not all patterns matches yet
MIT