我一直在遵循本指南,了解如何使用Node.js为git挂钩编写脚本。然而,当我在Windows机器上运行时,本指南使用的是基于Unix的系统。
我也找到了这个关于在Windows机器上运行git钩子的指南,但它没有使用Node.js
- 我正在我的package.json文件中运行一个预安装脚本来设置一个自定义的git挂钩位置
- 我使用VSCode作为我的编辑器,希望在使用UI进行提交等时运行git钩子。然而,我最初使用命令行来尝试触发钩子
package.json摘录
"scripts": {
"preinstall": "git config core.hooksPath ./git.hooks"
},
在我的git.hooks
文件夹中,我有一个pre-commit.js
文件。
我已经更新了第一行,以反映我想执行运行Node.js 的脚本的事实
预提交.js
#!C:/Program Files/nodejs/node.exe
console.log('Hello world!');
process.exit(1);
如果我直接运行这个脚本,我会得到一个Microsoft JScript编译错误-第1行的字符1无效。
如果我提交,我不会出错,但不会发生任何事情。
有人能指导我完成在Windows中创建Node.js钩子的过程吗。我宁愿自己创建一个,也不愿使用包。
-
将钩子准确命名为
pre-commit
,不使用.js
。 -
将第一行更改为
#!/usr/bin/env node
。但请确保C:/Program Files/nodejs/node.exe
已添加到环境变量PATH
中。 -
将其放置在
<repo>/.git/hooks
中。 -
使其可执行。在gitbash中,运行
chmod a+x <repo>/.git/hooks/pre-commit
。
现在它应该可以按预期工作了。