eslint-plugin-shopify
Shopify’s ESLint rules and configs.
Installation
You'll first need to install ESLint:
$ npm i eslint --save-dev
Next, install eslint-plugin-shopify
:
$ npm install eslint-plugin-shopify --save-dev
Note: If you installed ESLint globally (using the -g
flag) then you must also install eslint-plugin-shopify
globally.
Usage
Shopify’s ESLint configs come bundled in this package. In order to use them, you simply extend the relevant configuration in your project’s .eslintrc
. For example, the following will extend the ESNext (ES2015 and later) config:
{
"extends": "plugin:shopify/esnext"
}
If using React, extend the React version of the configuration (which adds some React-specific rules to those in the ESNext config):
{
"extends": "plugin:shopify/react"
}
If working on an ES5 project, extend the ES5 version of the configuration:
{
"extends": "plugin:shopify/es5"
}
Plugin-Provided Rules
This plugin provides the following custom rules:
- require-flow: Requires (or disallows) @flow declarations be present at the top of each file.
- binary-assignment-parens: Requires (or disallows) assignments of binary, boolean-producing expressions to be wrapped in parentheses.
Creating New Rules
The easiest way to add new rules is to use the ESLint Yeoman generator. Running yo eslint:rule
from the root of this project should add the required main file, docs, and test for your new rules. Make sure that these are all filled out and consistent with the other rules before merging. All tests (including linting) can be run using npm test
.