eslint-config
Quick start
-
Install the following dev-dependencies:
yarn add -D \ @mink-agency/eslint-config \ eslint \ eslint-plugin-node
-
Extend the
@mink-agency/eslint-config
config in your.eslintrc
(oreslintConfig
key in yourpackage.json
):"eslintConfig": { "extends": "@mink-agency/eslint-config" }
-
Specify the version of Node.js your project uses by setting
.engines.node
in yourpackage.json
."engines": { "node": ">=8" }
-
Run
eslint
on your project as part of yourlint:js
scripts:"scripts": { "lint:js": "yarn run eslint --cache --ext .js --ignore-path .gitignore ./resources/", }
Usage
The "Quick start" above exemplifies usage of this package with standard Node.js code.
Depending on the ECMAScript version of your code, whether you are using non-standard syntax like Flow and React's JSX,
or other considerations, you may want to extend a variety of configurations provided by this
package. @mink-agency/eslint-config
exposes several configurations targeting specific ESLint plugins, each
named after the plugin it targets.
To use each plugin-specific configuration, you'll need to do the following:
-
Install as dev-dependencies
@mink-agency/eslint-config
,eslint
, and any plugins that are used by the configuration(s) you are extending, such as@mink-agency/eslint-plugin-node
or@mink-agency/eslint-plugin-promise
. -
Add the configuration(s) you are using to the
"extends"
array in your project's ESLint configuration, like this:{ "extends": [ "@mink-agency/eslint-config/import", "@mink-agency/eslint-config/promise" ] }
Plugin-specific configurations
-
@mink-agency/eslint-config
/node
- Depends on eslint-plugin-node.
- For Node.js and CommonJS.
- Specify the version of Node.js your project uses by either setting
.engines.node
in yourpackage.json
, or by extending an LTS-version-specific ESLint configuration:node10
,node12
,node14
.
-
@mink-agency/eslint-config
/import
- Depends on eslint-plugin-import.
- For ES2015 modules (
import
andexport
).
-
@mink-agency/eslint-config
/promise
- Depends on eslint-plugin-promise.
- For
Promise
s.
-
@mink-agency/eslint-config
/no-inline-styles
- Depends on eslint-plugin-no-inline-styles.
- Disallow inline styling.
-
@mink-agency/eslint-config
/xss
- Depends on eslint-plugin-xss.
- For avoiding potential XSS issues in front end JavaScript.
- Does not perform any JavaScript style linting if used on its own.
-
@mink-agency/eslint-config
/react
- Depends on eslint-plugin-react.
- For React and JSX.
-
@mink-agency/eslint-config
/vue3
- Depends on eslint-plugin-vue.
- For Vue3.
With Prettier
If you are using Prettier to format your JS,
install eslint-config-prettier and add it at the end of
your "extends"
array. It will turn off all ESLint rules related to the code-style preferences that Prettier already
addresses.