- Install deps
npx husky-init && yarn add -D eslint prettier eslint-config-universe lint-staged @commitlint/cli @commitlint/config-conventional eslint-plugin-md
- Add config rules to your package.json file:
"eslintConfig": {
"root": true,
"ignorePatterns": [
"**/dist/**"
],
"extends": [
"universe",
"plugin:md/recommended"
],
"parser": "@typescript-eslint/parser",
"overrides": [
{
"files": [
"*.json"
],
"rules": {
"no-unused-expressions": "off"
}
},
{
"files": [
"*.md"
],
"parser": "markdown-eslint-parser",
"rules": {
"prettier/prettier": [
"error",
{
"parser": "markdown"
}
]
}
}
],
"rules": {
"md/remark": [
"error",
{
"plugins": [
[
"lint-maximum-line-length",
false
]
]
}
]
}
},
"prettier": {
"singleQuote": true,
"trailingComma": "all",
"arrowParens": "avoid",
"semi": true,
"useTabs": false,
"tabWidth": 4,
"printWidth": 120
},
"lint-staged": {
"*.{ts,json}": "eslint --fix",
"*.md": "prettier --write"
},
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
},
- Edit the scripts in your package,json file:
"prepare": "husky install",
"lint": "eslint . --cache",
"lint:fix": "eslint . --cache --fix"
- Edit .husky/pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged
- Create a .husky/commit-msg
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit ${1}'
came across this error: There was a problem loading formatter: ...\node_modules\eslint\lib\cli-engine\formatters\stylish
The issue is reported here: eslint/eslint#17215
solution was:
rm -rf node_modules yarn.lock && yarn install