@innocells/eslint-config
v1.2.0
Published
InnoCells's ESLint config, following our styleguide
Downloads
13
Readme
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
peerDependencies
and not justdependencies
see 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-a11y
Then:
npm install --save-dev @innocells/eslint-config
Or all at once:
npm i -D @innocells/eslint-config eslint eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y
Usage
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