@innocells/eslint-config v1.2.0
eslint-config-innocells
InnoCells's ESLint shared config which extends Airbnb's overriding some rules adapting them to our preferences.
Why
ESLint has become an indispensable tool in our development workflow (along Prettier), it help us catch those pesky bugs ASAP, enforce code conventions and keep our projects consistent.
This package aims to ease the configuration of new projects and keep a single source of truth for all those conventions.
This is the place where to discuss existing rules or apply new ones, so if you want to participate (as you should!) open a Github issue.
Install
This config depends on eslint, eslint-plugin-import, eslint-plugin-react and eslint-plugin-jsx-a11y as peerDependencies,
so make sure to install them before install the configuration, otherwise npm will complaint about unmet peer dependencies:
To learn more about why they are required as
peerDependenciesand not justdependenciessee here.
npm install --save-dev eslint
npm install --save-dev eslint-plugin-import
npm install --save-dev eslint-plugin-react
npm install --save-dev eslint-plugin-jsx-a11yThen:
npm install --save-dev @innocells/eslint-configOr all at once:
npm i -D @innocells/eslint-config eslint eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11yUsage
In your .eslintrc.js file just extend eslint-config-innocells:
module.exports = {
extends: '@innocells/eslint-config'
};Or more concisely:
module.exports = {
extends: '@innocells'
};Voilà! this will tell ESLint to apply our set of custom rules.
Configurations
This package export two ESLint configurations:
eslint-config-innocells
The base configuration, this config doesn't include any React rules, so is primary intended to be used in backend (Node.js) projects:
module.exports = {
extends: '@innocells',
rules: {
// project specific overrides
}
};eslint-config-innocells/react
React configuration, includes all the rules in the base config plus React specific ones. For usage in React and React Native projects:
module.exports = {
extends: '@innocells/eslint-config/react',
rules: {
// project specific overrides
}
};TODO
- summary of Airbnb rules
- summary of overridden rules