35.1.0 • Published 4 years ago

eslint-plugin-shopify v35.1.0

Weekly downloads
12,126
License
MIT
Repository
github
Last release
4 years ago

eslint-plugin-shopify

NPM version Circle CI David DM

Shopify’s ESLint rules and configs.

Installation

You'll first need to install ESLint:

With Yarn

yarn add --dev eslint

With npm

$ npm i eslint --save-dev

Next, install eslint-plugin-shopify:

With Yarn

yarn add --dev eslint-plugin-shopify

With npm

$ 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 you are working on an ES5 project, extend the ES5 version of the configuration:

{
  "extends": "plugin:shopify/es5"
}

You can also add some "augmenting" configs on top of the "core" config by extending an array of linting configs. For example, the following configuration would provide a base ESNext config that is augmented by a React config:

{
  "extends": [
    "plugin:shopify/esnext",
    "plugin:shopify/react"
  ]
}

Likewise, if you are using TypeScript and React, the following configuration extends the TypeScript base config with the React-specific rules provided by the React configuration file. To demonstrate multiple augmentations, we've also added the Prettier config, which disables rules that will conflict in projects using prettier.

{
  "extends": [
    "plugin:shopify/typescript",
    "plugin:shopify/react",
    "plugin:shopify/prettier",
  ]
}

Provided configurations

This plugin provides the following core configurations:

  • esnext: Use this for anything written with ES2015+ features.
  • typescript: Use this for Typescript projects. The rules enabled in this confige do not require type-checking to run. To enable all Typescript rules, you must augment this config with the typescript-type-checking config mentioned below.
  • es5: Use this for legacy projects.

This plugin also provides the following tool-specific configurations, which can be used on top of the core configurations:

  • typescript-type-checking Use this config to augment the typescript config to enable all TypeScript rules, including those that require type checking. These rules are slower to run and and you will need to specify a path to your tsconfig.json file in the "project" property of "parserOptions". The following example would provide all of the TypeScript rules, assuming the tsconfig.json is in the same directory as you ESlint configuration.
{
  "extends": [
    "plugin:shopify/typescript",
    "plugin:shopify/typescript-type-checking"
  ],
  "parserOptions": {
    "project": "tsconfig.json"
  }
}

node

If you are working on a node module, we also provide the node configuration for you. Note that this configuration needs to be used in conjunction with one of the core configurations (either es5 or esnext). If you plan to transpile your code using Babel, use the esnext config. If you do not plan to do so, the config you choose depends on the version of node you wish to support, and how many ESNext features are natively available in that version. You can see a detailed list of what version of node supports what new JavaScript features by visiting http://node.green.

A node project that will use Babel for transpilation would need the following ESLint config:

{
  "extends": [
    "plugin:shopify/esnext",
    "plugin:shopify/node"
  ]
}

Supported Typescript version

The version range of TypeScript currently supported by this plugin is >=3.2.1 <3.8.0. This is constrained by the @typescipt-eslint parser support.

Plugin-Provided Rules

This plugin provides the following custom rules, which are included as appropriate in all core linting configs:

35.1.0

4 years ago

35.0.0

4 years ago

34.0.1

4 years ago

34.0.0

4 years ago

33.0.0

4 years ago

33.0.0-beta.1

4 years ago

32.0.0

4 years ago

31.0.0

5 years ago

31.0.0-beta.0

5 years ago

30.0.1

5 years ago

30.0.0

5 years ago

29.0.2

5 years ago

29.0.1

5 years ago

29.0.0

5 years ago

28.0.0

5 years ago

28.0.0-beta.0

5 years ago

27.0.1

5 years ago

27.0.0

5 years ago

26.3.0

5 years ago

26.2.0

5 years ago

26.1.2

5 years ago

26.1.1

6 years ago

26.1.0

6 years ago

26.0.0

6 years ago

25.1.0

6 years ago

25.0.1

6 years ago

25.0.0

6 years ago

24.2.0

6 years ago

24.1.1

6 years ago

24.0.0

6 years ago

24.0.0-alpha.1

6 years ago

23.1.0

6 years ago

23.0.0

6 years ago

22.1.0

6 years ago

22.0.0

6 years ago

21.0.1

6 years ago

20.0.0

6 years ago

20.0.0-beta.4

6 years ago

20.0.0-beta.3

6 years ago

20.0.0-beta.2

6 years ago

19.0.1

6 years ago

19.0.0

6 years ago

19.0.0-beta.4

6 years ago

19.0.0-beta.1

6 years ago

18.4.0-beta.6

6 years ago

18.4.0-beta.5

6 years ago

18.4.0-beta.3

6 years ago

18.4.0-beta

6 years ago

18.1.0-beta

6 years ago

18.3.1-alpha.1

6 years ago

18.3.0

6 years ago

18.2.0

6 years ago

18.2.0-alpha.2

6 years ago

18.2.0-alpha.1

6 years ago

18.1.0

6 years ago

18.1.0-beta.1

6 years ago

18.1.0-alpha.5

6 years ago

18.1.0-alpha.4

6 years ago

18.1.0-alpha.3

6 years ago

18.1.0-alpha.2

6 years ago

18.1.0-alpha.1

6 years ago

18.0.0

7 years ago

17.2.1

7 years ago

17.2.0

7 years ago

17.2.0-alpha.1

7 years ago

17.2.0-beta.3

7 years ago

17.2.0-beta.2

7 years ago

17.2.0-beta.1

7 years ago

17.1.0

7 years ago

17.0.0

7 years ago

16.0.1

7 years ago

16.0.0

7 years ago

15.2.0

7 years ago

15.1.1

7 years ago

15.1.0

7 years ago

15.0.3

8 years ago

15.0.2

8 years ago

15.0.0

8 years ago

14.0.2

8 years ago

14.0.1

8 years ago

14.0.0

8 years ago

13.0.0

8 years ago

12.3.4

8 years ago

12.3.3

8 years ago

12.1.0

8 years ago

12.0.1

8 years ago

12.0.0

8 years ago

11.3.0

8 years ago

11.1.3

8 years ago

11.1.2

8 years ago

11.1.1

8 years ago

11.1.0

8 years ago

11.0.2

8 years ago

11.0.1

8 years ago

11.0.0

8 years ago

11.0.0-beta.6

8 years ago

11.0.0-beta.5

8 years ago

11.0.0-beta.4

8 years ago

11.0.0-beta.3

8 years ago

11.0.0-beta.2

8 years ago

11.0.0-beta.1

8 years ago

11.0.0-beta.0

8 years ago

10.8.0

8 years ago

10.5.0

8 years ago

10.1.1

8 years ago

10.0.0

8 years ago

9.0.2

8 years ago

9.0.1

8 years ago

9.0.0

8 years ago

8.0.0

8 years ago

7.0.0

8 years ago

6.2.0

8 years ago

6.1.0

8 years ago

6.0.1

8 years ago

6.0.0

8 years ago

1.0.3

8 years ago

2.1.0

8 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago