Digital Risks ESLint Config
Usage
- Add this to devDependencies:
@digitalrisks/eslint-config
ESLint
-
yarn add -D eslint
if not already present locally or globally -
Create a
.eslintrc.js
file -
Extend the config:
{
"extends": [
"@digitalrisks/eslint-config/eslint"
]
}
Full example
A full example .eslintrc.js
for a project with babel support:
Dont forget to
npm i -D babel-eslint
oryarn add -D babel-eslint
module.exports = {
"root": true,
"parserOptions": {
"parser": "babel-eslint",
"sourceType": "module"
},
"extends": [
"@digitalrisks/eslint-config/eslint"
],
}
Stylelint
-
yarn add -D stylelint
if not already present locally or globally -
Create a
.stylelint.js
file -
Extend the styleling config:
module.exports = {
extends: [
"@digitalrisks/eslint-config/stylelint",
]
}
Prettier
Note, we aren't using prettier on .vue
files due the poor formatting on blocks
-
yarn add -D prettier
if not already present locally or globally -
Create a
.prettierrc.js
file -
Use settting from this package
const prettier = require('@digitalrisks/eslint-config/prettier')
module.exports = prettier
package.json scripts
- Set up scripts in packages.json
"scripts": {
"lint:eslint": "eslint --fix",
"lint:all:eslint": "yarn lint:eslint --ext .js,.vue .",
"lint:prettier": "prettier --write --loglevel warn",
"lint:all:prettier": "yarn lint:prettier \"**/*.{json,md}\"",
"lint:stylelint": "stylelint --fix",
"lint:all:stylelint": "yarn lint:stylelint \"src/**/*.{vue,css}\"",
"lint": "run-s lint:all:*"
},
yarn add -D npm-run-all
preCommit linting
-
yarn add -D lint-staged cross-env
or if NOT using vue-cliyarn add -D yorkie lint-staged cross-env
-
Create
lint-staged.config.js
module.exports = {
'*.js': [ 'yarn lint:eslint', 'git add' ],
'{!(package)*.json,*.code-snippets,.!(browserslist)*rc}': [ 'yarn lint:prettier --parser json', 'git add' ],
'package.json': [ 'yarn lint:prettier', 'git add' ],
'*.vue': [ 'yarn lint:eslint', 'git add' ],
'*.css': [ 'yarn lint:stylelint', 'git add' ],
// '*.md': ['yarn lint:markdownlint', 'yarn lint:prettier', 'git add' ],
}
- Add
gitHook
topackage.json
"gitHooks": {
"pre-commit": "cross-env PRE_COMMIT=true lint-staged"
},
Additional Notes
Setup inspired by @nuxtjs/eslint-config & eslint-config-standard