【发布时间】: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