團隊項目中,通常咱們會統一代碼提交規範。這裏簡單介紹下使用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