安装
npm install pre-commit –save-dev
package.json
如果你已经安装了 pre-commit, 那你就需要在你的 package.json 里面添加一个新的 pre-commit 的入口, 来表示在 commit 之前要执行的校验规则。
1 | { |
Pre-commit 信息
可以在 pre-commit 前加一个描述日志,,这个不会造成信息混乱,清楚的知道发生了什么事。
1 | { |
问题
pre-commit钩子没有执行成功, 还是可以在commit的后面加上--no-verify的参数来强制提交。window由于权限问题,无法在hooks下生成文件,需要以管理打开cmd,执行
node ./node_modules/pre-commit/install.js手动生成钩子文件。
也可以添加postinstall钩子在项目安装后检查hooks下文件有没有生成,若没有则进执行生成命令:
package.json1
2
3
4
5{
"scripts": {
"postinstall": "node ./postinstall.js"
}
}
postinstall.js1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22const fs = require('fs');
const path = require('path');
const { exec } = require('child_process');
fs.access(path.join(__dirname, './.git/hooks/pre-commit'), fs.constants.F_OK, (err) => {
if (err) {
// 未安装钩子
exec('node ./node_modules/pre-commit/install.js', {
cwd: dirname
}, (err, stdout, stderr) => {
if (err) {
console.error(`install pre-commit error: ${err}`);
return;
}
if (stdout) {
console.log(`install pre-commit stdout: ${stdout}`);
}
if (stderr) {
console.log(`install pre-commit stderr: ${stderr}`);
}
});
}
});