Package Exports
- @wordpress/eslint-plugin
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@wordpress/eslint-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ESLint Plugin
ESLint plugin including configurations and custom rules for WordPress development.
Installation
Install the module
npm install @wordpress/eslint-plugin --save-dev
Usage
To opt-in to the default configuration, extend your own project's .eslintrc
file:
{
"extends": [ "plugin:@wordpress/eslint-plugin/recommended" ]
}
Refer to the ESLint documentation on Shareable Configs for more information.
The recommended
preset will include rules governing an ES2015+ environment, and includes rules from the eslint-plugin-jsx-a11y
and eslint-plugin-react
projects.
Rulesets
Alternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:
es5
esnext
jsx-a11y
react
For example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following extends
definition:
{
"extends": [ "plugin:@wordpress/eslint-plugin/esnext" ]
}
These rules can be used additively, so you could extend both esnext
and custom
rulesets, but omit the react
and jsx-a11y
configurations.
The granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.
Rules
Rule | Description | Recommended |
---|---|---|
dependency-group | Enforce dependencies docblocks formatting | ✓ |
gutenberg-phase | Governs the use of the process.env.GUTENBERG_PHASE constant |
✓ |
no-unused-vars-before-return | Disallow assigning variable values if unused before a return | ✓ |
react-no-unsafe-timeout | Disallow unsafe setTimeout in component |
|
valid-sprintf | Enforce valid sprintf usage | ✓ |
no-base-control-with-label-without-id | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓ |
Legacy
If you are using WordPress' .jshintrc
JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's .eslintrc
file as:
{
"extends": [ "plugin:@wordpress/eslint-plugin/jshint" ]
}