4fa2e3822c
* test bumping node to v18 * remove community contributor condition from review assignment * Add changefile(s) from automation for the following project(s): @woocommerce/tracks, @woocommerce/onboarding, @woocommerce/number, @woocommerce/notices, @woocommerce/navigation, @woocommerce/internal-js-tests, @woocommerce/extend-cart-checkout-block, @woocommerce/expression-evaluation, @woocommerce/explat, @woocommerce/experimental, @woocommerce/eslint-plugin, @woocommerce/dependency-extraction-webpack-plugin, @woocommerce/date, @woocommerce/data, @woocommerce/customer-effort-score, @woocommerce/currency, @woocommerce/csv-export, @woocommerce/create-woo-extension, @woocommerce/create-product-editor-block, @woocommerce/components, @woocommerce/api, @woocommerce/admin-e2e-tests, woocommerce-blocks, woocommerce-beta-tester, woocommerce, woo-ai * bump node to v20 * Add changefile(s) from automation for the following project(s): @woocommerce/tracks, @woocommerce/onboarding, @woocommerce/number, @woocommerce/notices, @woocommerce/navigation, @woocommerce/internal-js-tests, @woocommerce/extend-cart-checkout-block, @woocommerce/expression-evaluation, @woocommerce/explat, @woocommerce/experimental, @woocommerce/eslint-plugin, @woocommerce/dependency-extraction-webpack-plugin, @woocommerce/date, @woocommerce/data, @woocommerce/customer-effort-score, @woocommerce/currency, @woocommerce/csv-export, @woocommerce/create-woo-extension, @woocommerce/create-product-editor-block, @woocommerce/components, @woocommerce/api, @woocommerce/admin-e2e-tests, packages/php/remote-specs-validation, woocommerce-blocks, woocommerce-beta-tester, woocommerce, woo-ai * Add changefile(s) from automation for the following project(s): @woocommerce/tracks, @woocommerce/onboarding, @woocommerce/number, @woocommerce/notices, @woocommerce/navigation, @woocommerce/internal-js-tests, @woocommerce/extend-cart-checkout-block, @woocommerce/expression-evaluation, @woocommerce/explat, @woocommerce/experimental, @woocommerce/eslint-plugin, @woocommerce/dependency-extraction-webpack-plugin, @woocommerce/date, @woocommerce/data, @woocommerce/customer-effort-score, @woocommerce/currency, @woocommerce/csv-export, @woocommerce/create-woo-extension, @woocommerce/create-product-editor-block, @woocommerce/components, @woocommerce/api, @woocommerce/admin-e2e-tests, woocommerce-blocks, woocommerce-beta-tester, woocommerce, woo-ai * add blocks eslint-plugin-woocommerce to project workspace * add e2e-environment as a peer to e2e-utils * restore version on @woocommerce/api * update lock file * move e2e-environment to devDependencies * add undefined location check to admin js test --------- Co-authored-by: Ron Rennick <ronald.rennick@automattic.com> Co-authored-by: github-actions <github-actions@github.com> |
||
---|---|---|
.. | ||
changelog | ||
configs | ||
docs/rules | ||
rules | ||
.eslintrc.js | ||
.npmrc | ||
CHANGELOG.md | ||
PREVIOUS_CHANGELOG.md | ||
README.md | ||
composer.json | ||
composer.lock | ||
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 | ✓ |