1. $ git init

    增加.gitignore

    1. # Logs
    2. logs
    3. *.log
    4. npm-debug.log*
    5. yarn-debug.log*
    6. yarn-error.log*
    7. # Sys
    8. .DS_Store
    9. # Node
    10. node_modules/
    11. # Build
    12. dist
    13. lib
    14. esm
    15. # Test
    16. coverage

    Git Hooks

    • husky: husky 能让你创建勾子(Hook),这些钩子会在指定时候执行
    • commitlint:commitlint 会按照一定的规则对你的提交信息进行检查
    • lint-staged:lint-staged 只会对你的新加入暂存区的文件进行指定的操作

    安装husky

    1. $ npx husky-init && npm install

    初始化hooks

    1. $ npx husky add .husky/pre-commit 'npx lint-staged'
    2. $ npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

    安装lint-stage

    1. $ npx mrm@2 lint-staged --save-dev

    增加lint-staged在package.json

    1. {
    2. "lint-staged": {
    3. "*.js": ["eslint --fix"] // 在提交前用 eslint 修复所有 js 文件
    4. }
    5. }

    安装commitlint

    1. $ npm install --save-dev @commitlint/{cli,config-conventional}

    生成commitlint.config.js

    1. "module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js

    ok,提交一下应该会走这些hooks