shareable configuration for ESLint
Lint rules can be controversial, but I believe they should be extensive and strict. I think that consistency is more valuable in a codebase than personal preference, especially when those preferences differ between team members and even individual members at different times.
Because of this, the Airbnb base config is extended as the as the base ruleset of this config. It is not extended because of agreeing with all of the rules, but because it defines an extensive ruleset in a strict way. Rules are overridden from there, both to make some more strict and to make some enforce a different convention.
Extending this config allows you to use this config as a base for your own config, enabling you to define further rules or override some defined in this config.
It is recommended to create your own config early rather than using this one directly even if you do not define any overrides at first. That way, your projects will already depend on your custom config when you decide to define custom rules later.
$ npm install @form8ion/eslint-config --save-prod
Note that you can use the shorthand version of the config name
module.exports = {extends: '@form8ion'};
$ npm install @form8ion/eslint-config --save-dev
Such as in an .eslintrc.yml
extends: '@form8ion'
$ nvm install
$ npm install
$ npm test