如何使用Node.js在Windows中创建git挂钩



我一直在遵循本指南,了解如何使用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钩子的过程吗。我宁愿自己创建一个,也不愿使用包。

  1. 将钩子准确命名为pre-commit,不使用.js

  2. 将第一行更改为#!/usr/bin/env node。但请确保C:/Program Files/nodejs/node.exe已添加到环境变量PATH中。

  3. 将其放置在<repo>/.git/hooks中。

  4. 使其可执行。在gitbash中,运行chmod a+x <repo>/.git/hooks/pre-commit

现在它应该可以按预期工作了。

最新更新