團隊項目中,通常咱們會統一代碼提交規範。這裏簡單介紹下使用git鉤子插件來規範化提交代碼。vue
在git中,每次執行git commit, git push等操做時,會觸發一個或多個shell腳本,這些腳本稱爲鉤子,存放在 .git/hooks 目錄下。鉤子分爲前置鉤子和後置鉤子,前置鉤子爲git命令調用前執行,後置鉤子爲git命令完成後執行。node
因此在git命令提交時,咱們能夠額外作一些事情,好比提交前的代碼檢測,提交後的部署等功能。下面咱們藉助插件來實現代碼提交前的commit信息校驗,代碼格式化,代碼檢測等功能。git
首先安裝husky, pretty-quick,lint-staged,commitlint, eslint插件。shell
cnpm i husky pretty-quick lint-staged commitlint eslint --save-dev
複製代碼
修改package.json配置,設置lint-staged和husky。npm
"lint-staged": { "linters": { "**/*.{js,vue}": [ "eslint --fix", "git add" ] } } 複製代碼
"husky": { "hooks": { "pre-commit": "pretty-quick --staged && lint-staged", "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } } 複製代碼
下面的配置文件僅供參考。json
// prettier.config.js module.exports = { printWidth: 120, //一行的字符數,若是超過會進行換行,默認爲80 tabWidth: 2, //一個tab表明幾個空格數,默認爲80 useTabs: false, //是否使用tab進行縮進,默認爲false,表示用空格進行縮減 singleQuote: true, //字符串是否使用單引號,默認爲false,使用雙引號 semi: true, //行位是否使用分號,默認爲true }; 複製代碼
// commitlint.config.js module.exports = { rules: { 'type-enum': [ 2, 'always', [ 'build', 'ci', 'chore', 'merge', 'docs', 'feat', 'fix', 'test' ] ], 'body-leading-blank': [1, 'always'], 'footer-leading-blank': [1, 'always'], } }; 複製代碼
// .eslintrc.js module.exports = { root: true, env: { node: true }, extends: ['plugin:vue/essential', '@vue/prettier'], rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', quotes: [1, 'single'], 'vue/no-parsing-error': [2, { 'x-invalid-end-tag': false }] }, parserOptions: { parser: 'babel-eslint' } }; 複製代碼
參考地址: www.jianshu.com/p/dc55ddd6c…bash