c05605fddf
* Update husky from 4 to 7 * Update @types/jest from 26 to 27 * Update lint-staged from 10 to 12 * Update babel-jest from 26 to 27 * Update @typescript-eslint/eslint-plugin from 4 to 5 * Update @typescript-eslint/parser from 4 to 5 * Update chalk from 4 to 5 * Update concurrently from 5 to 7 * Update stylelint from 9 to 14 and stylelint-config-wordpress from 13 to 17 * Update @wordpress/prettier-config from 0.4 to 1.1 * Update eslint from 7 to 8, @wordpress/eslint-plugin from 8 to 10, eslint-plugin-testing-library to 5 * Fix lint errors after updating eslint-plugin-testing-library * Fix style lint * Rename .stylelintrc.json -> stylelint.config.js & add todo comment Fix stylelint.config.js * Remove @wordpress/e2e-test-utils * Add changelogs for eslint-plugin * Update storybook/preview.js since addDecorator has been deprecated Remove parameters * Import directly from @storybook/addon-docs * Migrate some stories to use @storybook/addon-controls Add a comment for @storybook/addon-knobs * Update changelogs * Update preview.js to fix lint warning * Update pnpm-lock.yaml * Fix eslint layout errors (https://github.com/woocommerce/woocommerce-admin/pull/8484) |
||
---|---|---|
.. | ||
configs | ||
docs/rules | ||
rules | ||
.npmrc | ||
CHANGELOG.md | ||
README.md | ||
index.js | ||
package.json |
README.md
ESLint Plugin
This is an ESLint plugin including configurations and custom rules for WooCommerce development.
Note: This primarily extends the @wordpress/eslint-plugin/recommended
ruleset and does not change any of the rules exposed on that plugin. As a base, all WooCommerce projects are expected to follow WordPress JavaScript Code Styles.
However, this ruleset does implement the following (which do not conflict with WordPress standards):
- Using typescript eslint parser to allow for eslint Import (see issue)
- prettier formatting (using
wp-prettier
) - Dependency grouping (External and Internal) for dependencies in JavaScript files
- No yoda conditionals
- Radix argument required for
parseInt
.
Installation
Install the module
pnpm install @woocommerce/eslint-plugin --save-dev
Usage
To opt-in to the default configuration, extend your own project's .eslintrc.js
file:
module.exports = {
"extends": [ "plugin:@woocommerce/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 @wordpress/eslint-plugin/recommended
project.
If you want to use prettier in your code editor, you'll need ot create a .prettierrc.js
file at the root of your project with the following:
module.exports = require("@wordpress/prettier-config");
Rules
Rule | Description | Recommended |
---|---|---|
dependency-group | Enforce dependencies docblocks formatting | ✓ |