最终实现效果说明:
用 git commit 提交代码以前,利用 pre-commit git 钩子,实现代码规范检测(eslint、standard 规范),符合规范以后才能够提交到 git 仓库。这样在团队合做开发时,能够统一代码风格,若是某些同志代码不符合规范,是没法进行提交代码的。html
个人demo地址:
demo地址vue
规范doc:
standard规范
eslint规范node
git 钩子
git 钩子git
请确保已经安装了: node | npm | git
安装传送门:node | npm | gitgithub
先说一下个人目录结构:npm
|——node_modules # 项目资源依赖(npm install 以后出现改文件夹) | pre-commit ——— |——src —— test.js # 项目代码(项目业务逻辑) | |——package.json # 本地安装 npm 包 (npm init 以后出现该文件)
先按照鄙人的目录先建立目录,而后前后执行以下命令:json
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 文件segmentfault
// 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
先按照鄙人的目录先建立目录,而后前后执行以下命令:
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 博客:传送门