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…inloopsmax-len: we do not test against an arbitrary maximum of characters per line but strive to solve readability issues through code reviews