ESLint-plugin-React

Maintenance Status NPM version Build Status Build Status Dependency Status Coverage Status Code Climate

React specific linting rules for ESLint

Installation

Install ESLint either locally or globally.

sh $ npm install eslint --save-dev

If you installed ESLint globally, you have to install React plugin globally too. Otherwise, install it locally.

sh $ npm install eslint-plugin-react --save-dev

Configuration

Use our preset to get reasonable defaults:

json "extends": [ "eslint:recommended", "plugin:react/recommended" ]

You should also specify settings that will be shared across all the plugin rules.

json5 { "settings": { "react": { "createClass": "createReactClass", // Regex for Component Factory to use, // default to "createReactClass" "pragma": "React", // Pragma to use, default to "React" "version": "detect", // React version. "detect" automatically picks the version you have installed. // You can also use `16.0`, `16.3`, etc, if you want to override the detected value. "flowVersion": "0.53" // Flow version }, "propWrapperFunctions": [ // The names of any function used to wrap propTypes, e.g. `forbidExtraProps`. If this isn't set, any propTypes wrapped in a function will be skipped. "forbidExtraProps", {"property": "freeze", "object": "Object"}, {"property": "myFavoriteWrapper"} ] } }

If you do not use a preset you will need to specify individual rules and add extra configuration.

Add "react" to the plugins section.

json { "plugins": [ "react" ] }

Enable JSX support.

With ESLint 2+

json { "parserOptions": { "ecmaFeatures": { "jsx": true } } }

Enable the rules that you would like to use.

json "rules": { "react/jsx-uses-react": "error", "react/jsx-uses-vars": "error", }

List of supported rules

JSX-specific rules

Other useful plugins

Shareable configurations

Recommended

This plugin exports a recommended configuration that enforces React good practices.

To enable this configuration use the extends property in your .eslintrc config file:

json { "extends": ["eslint:recommended", "plugin:react/recommended"] }

See ESLint documentation for more information about extending configuration files.

The rules enabled in this configuration are:

All

This plugin also exports an all configuration that includes every available rule. This pairs well with the eslint:all rule.

json { "plugins": [ "react" ], "extends": ["eslint:all", "plugin:react/all"] }

Note: These configurations will import eslint-plugin-react and enable JSX in parser options.

License

ESLint-plugin-React is licensed under the MIT License.