This repository provides Chefkoch's shared eslint settings. The config is (for now) a simple extension of Airbnb's base package with a few opinionated overrides.
To use Chefkoch's eslint config, start by installing the required dependencies in your project with:
yarn add eslint-config-chefkoch eslint-config-airbnb-base eslint eslint-plugin-import
We strongly recommend you use yarn
but you can also use npm install <package…>
. Airbnb's config (and, by extension, ours) contains all of their ESLint rules, including ECMAScript 6+. It requires eslint
and eslint-plugin-import
.
Afterwards, create a .eslintrc
file in the root folder of your project. It only needs to contain the following:
{
"extends": "chefkoch",
"plugins": [
"import"
]
}
If you lint your JS via a gulp
task in your build step (recommended), gulp-eslint
is also required. A simple task that lints all Javascript files in your local /src/
folder looks like this:
gulp.task('lint', function() {
return gulp.src(['./src/**/*.js'])
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
});
Airbnb has put a tremendous effort into documenting their mostly reasonable approach to JavaScript. We strongly recommend you check out Airbnb's Javascript styleguide to discover the reasons behind the linting rules.
There are only a few rules where we have decided to diverge from Airbnb with overrides:
indent
: we indent with 4 spaces, not 2no-param-reassign
: we allow property mutation on function parametersno-restricted-syntax
: we allow the use offor…in
loopsmax-len
: we do not test against an arbitrary maximum of characters per line but strive to solve readability issues through code reviews