A set of opinionated ESLint (http://eslint.org) rules (all rules included) tailored for React projects
npm install --save-dev eslint-config-react babel-eslint eslint-plugin-react
- Create a file named
.eslintrc
in your project:
{
"extends": "react"
// Your overrides...
}
Read about all the rules here: http://eslint.org/docs/rules/
React plugin rules: https://github.com/yannickcr/eslint-plugin-react#list-of-supported-rules
Removed a bunch of rules about method order, especially the ones that is not really relevant with ES6 anymore
Removed env from config. That should be set per project, especially since it can't be overriden.
arrow-parens: You should be allowed to omit parens if only one parameter (2 -> 0)
prefer-spread: Moving to ES6, this should be default.
prefer-reflect: Moving to ES6, this should be default.
react/forbid-prop-types: Forbid the usage of React.PropTypes.any, it doesn't say anything really.
react/jsx-closing-bracket-location: Don't care
react/jsx-indent-props: Don't specify any.
react/jsx-quotes: Again don't care, altho I thin "" makes more sense
react/no-direct-mutation-state: If you do this, you should be sent to React prison :)
react/no-set-state: Entirely project specific.
react/sort-comp: Order custom component* (lifecycle) methods before other custom methods.
prefer-const: Disabled since it's very annoying when you have variables that will be changeable later on. const is a very nice concept that should be used for stuff that are actually constants.
Name change. This is a config for React projects.
jsx-quotes: The react/jsx-quotes rule is deprecated. Using the jsx-quotes rule instead.
no-unused-vars: Ignore React as unused variable. Because you need to import React for JSX (it will reference that variable) without you specifically referencing it.