$ git init
增加.gitignore
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Sys
.DS_Store
# Node
node_modules/
# Build
dist
lib
esm
# Test
coverage
Git Hooks
- husky: husky 能让你创建勾子(Hook),这些钩子会在指定时候执行
- commitlint:commitlint 会按照一定的规则对你的提交信息进行检查
- lint-staged:lint-staged 只会对你的新加入暂存区的文件进行指定的操作
安装husky
$ npx husky-init && npm install
初始化hooks
$ npx husky add .husky/pre-commit 'npx lint-staged'
$ npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
安装lint-stage
$ npx mrm@2 lint-staged --save-dev
增加lint-staged在package.json
{
"lint-staged": {
"*.js": ["eslint --fix"] // 在提交前用 eslint 修复所有 js 文件
}
}
安装commitlint
$ npm install --save-dev @commitlint/{cli,config-conventional}
生成commitlint.config.js
"module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
ok,提交一下应该会走这些hooks