@bhws/eslint-config v0.1.2
Base ESLint Config
Usage
- Add this to devDependencies:
@bhws/eslint-config
ESLint
yarn add -D eslintif not already present locally or globallyCreate aN
.eslintrcfileExtend the config (you can use just the scope name as ESLint will assume the eslint-config prefix):
{
"extends": [
"@bhws/eslint-config/eslint"
]
}Full example
A full example .eslintrc for a project with babel support:
Dont forget to
npm i -D babel-eslintoryarn add -D babel-eslint
module.exports = {
"root": true,
"parserOptions": {
"parser": "babel-eslint",
"sourceType": "module"
},
"extends": [
"@bhws/eslint-config/eslint"
],
}Stylelint
yarn add -D stylelintif not already present locally or globallyCreate a
.stylelintrcfileExtend the stylelint config:
module.exports = {
extends: [
"@bhws/eslint-config/stylelint",
]
}Prettier
Note, opting not using prettier on .vue files due the poor formatting on blocks 😞 (https://github.com/prettier/prettier/issues/5377#issuecomment-452391239)
yarn add -D prettierif not already present locally or globallyCreate a
.prettierrcfileUse settting from this package
const prettier = require('@bhws/eslint-config/prettier')
module.exports = prettierpackage.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-envor if NOT using vue-cliyarn add -D yorkie lint-staged cross-envCreate
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
gitHooktopackage.json
"gitHooks": {
"pre-commit": "cross-env PRE_COMMIT=true lint-staged"
},Additional Notes
Setup inspired by @nuxtjs/eslint-config & eslint-config-standard How to create your own shared esLint, prettier and stylelint configuration