Packages:
1) npm i husky --save-dev
2) npm i lint-staged --save-dev
3) npm i prettier --save-dev
4) npm i prettier-eslint --save-dev
5) npm i pretty-quick --save-dev
6) npm i @commitlint/cli --save-dev
7) npm i @commitlint/config-conventional --save-dev
GIT Hooks
1) commit-msg
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx husky add .husky/commit-msg 'npx commitlint --edit $1'
npx --no-install commitlint --edit $1
exit 0;
2) pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm test
npm run lint
npx pretty-quick --staged
npm run lint
exit 0
3) pre-push
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx husky add .husky/commit-msg 'npx commitlint --edit $1'
npx --no-install commitlint --edit $1
npx pretty-quick --staged
npm run lint
exit 0;
4) .commitlintrc.json
{
"extends": ["@commitlint/config-conventional"],
"rules": {
"type-enum": [
2,
"always",
[
"build",
"chore",
"ci",
"docs",
"feat",
"fix",
"perf",
"refactor",
"revert",
"style",
"test",
"#"
]
]
}
}