终究完成结果申明:
用 git commit 提交代码之前,应用 pre-commit git 钩子,完成代码范例检测(eslint、standard 范例),相符范例以后才能够提交到 git 堆栈。如许在团队合作开发时,能够一致代码作风,假如某些同道代码不相符范例,是没法举行提交代码的。
我的demo地点:
demo地点
范例doc:
standard范例
eslint范例
git 钩子
git 钩子
那末题目来了,这类考证是怎样完成的呢?!
请确保已装置了: node | npm | git
装置传送门:node | npm | git
先说一下我的目次构造:
|——node_modules # 项目资本依靠(npm install 以后涌现改文件夹)
|
pre-commit ——— |——src —— test.js # 项目代码(项目营业逻辑)
|
|——package.json # 当地装置 npm 包 (npm init 以后涌现该文件)
一、步骤以下(下面是 standard 范例考证):
先根据鄙人的目次先建立目次,然后前后实行以下敕令:
git init // 将当地项目设置为 git 项目 git remote add origin url // url 为本身的 git 堆栈地点 npm init // 将 pre-commit 项目设置为 npm 项目 npm install --save-dev standard // 装置 standard 范例 npm install --save-dev husky@next // 装置 husky git 钩子 npm install --save-dev snazzy // 装置 snazzy ,美化 standard 报错提醒,eslint 范例不需要装置
装置好依靠资本后,变动 package.json 文件
// package.json { "husky": { "hooks": { "pre-commit": "standard \"src/**/*.{js,vue,wpy}\" | snazzy", } } } 注:检测 src 目次下的一切文件后缀为 .js || .vue || .wpy 的文件编码,是不是相符范例。 若不相符,git 钩子将会阻挠 git 继承 commit, 并且会报出毛病信息; 若相符代码范例,git commit 就会胜利提交到当地堆栈。
固然你能够绕过代码检测强迫提交:
git add . && git commit --no-verify -m "代码范例强迫提交测试"
standard 范例毛病提醒以下:
// standard 范例默许毛病提醒:
D:\pre-commit\src\test.js:2:19: Extra semicolon.
------------------------------------------------
// 应用 snazzy 美化后的毛病提醒:
2:19 error Extra semicolon
✖ 1 problem
二、步骤以下(下面是 eslint 范例考证):
先根据鄙人的目次先建立目次,然后前后实行以下敕令:
git init // 将当地项目设置为 git 项目 git remote add origin url // url 为本身的 git 堆栈地点 npm init // 将 pre-commit 项目设置为 npm 项目 npm install --save-dev eslint // 装置 eslint 范例 npm install --save-dev husky@next // 装置 husky git 钩子 注重,实行敕令: $ ./node_modules/.bin/eslint --init // 天生 .eslintrc.js 文件,可自定义代码作风
装置好依靠资本后,变动 package.json 文件
// package.json { "husky": { "hooks": { "pre-commit": "eslint \"src/**/*.{js,vue,wpy}\"", } } }
固然你能够绕过代码检测强迫提交:
git add . && git commit --no-verify -m "代码范例强迫提交测试"
eslint 范例毛病提醒以下:
// eslint 范例毛病提醒
D:\fe\pre-commit\src\test.js
1:13 error Strings must use doublequote quotes
1:28 error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
1:28 error Missing semicolon semi
2:1 error Unexpected console statement no-console
2:20 error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
✖ 5 problems (5 errors, 0 warnings)
✖ 1 problem
根据响应的错提醒,变动代码,相符范例后,即可提交到 git 堆栈。
声明:有任何题目迎接留言!未经作者赞同制止转载!感谢!
迎接接见我的 git 博客:传送门