@innocells/eslint-config

1.2.0 • Public • Published

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 just dependencies 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

Package Sidebar

Install

npm i @innocells/eslint-config

Weekly Downloads

1

Version

1.2.0

License

MIT

Unpacked Size

4.46 kB

Total Files

4

Last publish

Collaborators

  • alxmllr
  • ernestinnocells
  • icayellas
  • jlpiedrahita