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 its peer dependencies. Unfortunately, they cannot be normal dependencies. Please consult the package.json
for correct version information of the peer dependencies.
yarn add --dev eslint eslint-config-actano eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y
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
Allow function expressions without a name. eslint: func-names
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
We want to use generators. eslint: no-iterator
for .. of
loops provide an easy way to iterate through iterators. eslint: no-restricted-syntax
We want to not be forced how are writing our arrow function bodies. eslint: implicit-arrow-linebreak
We don't want to be forced to always destructore props in React components. eslint: react/destructuring-assignment