ESLint-plugin-JSX-control-statements
Installation
Install ESLint either locally or globally.
$ npm install eslint
If you installed ESLint
globally, you have to install React plugin globally too. Otherwise, install it locally.
$ npm install eslint-plugin-jsx-control-statements
Configuration (Simple)
Add plugins
section and specify ESLint-plugin-JSX-Control-Statements as a plugin and plugin:jsx-control-statements/recommended
to "extends"
{
"plugins": [
"jsx-control-statements"
],
"extends": ["plugin:jsx-control-statements/recommended"]
}
If it is not already the case you must also configure ESLint
to support JSX.
{
"ecmaFeatures": {
"jsx": true
}
}
Configuration (Advanced)
The plugin comes with a number of rules and an environment that sets the control statements (<If>
, <For>
etc) as global variables:
{
"rules": {
"jsx-control-statements/jsx-choose-not-empty": 1,
"jsx-control-statements/jsx-for-require-each": 1,
"jsx-control-statements/jsx-for-require-of": 1,
"jsx-control-statements/jsx-for-require-body": 1,
"jsx-control-statements/jsx-if-require-condition": 1,
"jsx-control-statements/jsx-otherwise-once-last": 1,
"jsx-control-statements/jsx-use-if-tag": 1,
"jsx-control-statements/jsx-when-require-condition": 1,
"jsx-control-statements/jsx-jcs-no-undef": 1,
"no-undef": 0
},
env: {
"jsx-control-statements/jsx-control-statements": true
}
}
Important:
After version 7.0.0 of eslint-plugin-react
the rule react/jsx-no-undef
it's not checking globals by default anymore.
So you need to enable this to avoid lint errors telling that "If", "Choose", etc. are not defined. To fix this add to your
rules:
{
"rules": {
"react/jsx-no-undef": [2, { "allowGlobals": true }]
}
}
List of supported rules
Credits
Thanks to @yannickcr for his awesome eslint-plugin-react.
License
MIT License. Copyright(c) Vivek Kumar Bansal