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 env from config. That should be set per project, especially since it can't be overrriden.
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.