【问题标题】:Git pre-commit hook isn't executed未执行 Git 预提交挂钩
【发布时间】:2021-09-10 03:55:15
【问题描述】:

我想在预提交挂钩中执行 node.js 脚本。

  • 预期结果:node.js 脚本被执行
  • 实际结果:什么都没有发生,没有错误,没有日志,什么都没有
#!/usr/bin/env bash

echo "Run pre-commit hook"
node [project]/scripts/generate-social-media-preview/index.js
git add .
echo "Finished pre-commit hook"
exit 0

当然,我也试过直接在pre-commit中运行node.js,把第一行改成:#!/usr/bin/env node。结果一样。

脚本执行 playwright,操作 HTML 模板,截取屏幕截图并保存。所有这些都存在于一个 nuxt.js 项目中,因此脚本和项目的其余部分都使用一个共享的 node-modules 文件夹和 package.json。

如果我只运行[project]/scripts/generate-social-media-preview/index.js,它就会完全按照它应该做的方式运行。我使文件可执行。

我通常通过 Webstorm 提交,但我也使用终端提交,但我从未看到输出或相应生成图像。

此外,husky 和 ​​pre-commit 也在我的列表中,但它的行为与原生 pre-commit 挂钩一样。

我很乐意“在代码中”解决这个问题,因为没有插件或本地脚本触发这个问题,在 npm run generate 期间运行它也不起作用,因为我的网站托管在 Netlify,当然,那里剧作家不能使用铬。

可以在这里看到整个代码(包括我所有的测试提交...):https://github.com/LukaHarambasic/harambasic.de/pull/46

【问题讨论】:

  • 你的钩子文件可执行吗?
  • 你从来没有描述过作为钩子执行时的结果。
  • @knittl 是的。
  • @jingx 我添加了预期和实际结果。

标签: node.js git nuxt.js pre-commit-hook playwright


【解决方案1】:

所以,有两个问题:

  1. WebStorm 不能很好地处理预提交钩子,对我来说,不知何故不适用于 husky。从现在开始,我将通过命令行执行命令。如果您想了解更多信息,请阅读thisthis 问题。 -> 如果您找到解决方案,请告诉我
  2. 在 pre-commit 挂钩中提交文件不是很可靠 - 请查看 this 问题以查看使用 pre-commit 和 post-commit 挂钩的解决方案。

【讨论】:

    猜你喜欢
    • 2014-01-03
    • 2019-12-25
    • 2014-05-13
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多