This package provides Actano's .eslintrc.json as an extensible shared config. It extends the popular config by Airbnb and changes a few rules to fit our taste.
Our default export contains all of our ESLint rules, including ECMAScript 6+ and React. It requires eslint
, eslint-plugin-import
, eslint-plugin-react
, and eslint-plugin-jsx-a11y
.
Install this package and all it's peer dependencies. Unfortunately, they cannot be normal dependencies.
npm install --save-dev eslint-config-actano eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y eslint
Create an .eslintrc.yml
with this content:
extends: actano
You might need enable the mocha context and allow having no-unused-expression
in your test files by configuring this in a separate .eslintrc.yml
inside your test directory:
env:
mocha: true
rules:
no-unused-expressions: off
We are adopting most of the rules from Airbnb. Please check out their styleguide to get the full picture.
We do have different opinions on these topics:
They are not needed and code looks better without them. eslint: semi
We use leading underscores to express that a function is private. eslint: no-underscore-dangle
When using generators, while (true)
loops make sense. eslint: no-constant-condition
Classes read better if private methods are defined below their first usage. Tests read better when all helper functions are defined at the bottom. eslint: no-use-before-define
We want to use generators. eslint: no-iterator
for .. of
loops provide an easy way to iterate through iterators. eslint: no-restricted-syntax
We always want to use parentheses around function arguments in arrow functions to make it obvious what the function arguments are, even if it is just one argument