我们在项目中使用git和npm。
我们经常撤出同事所做的更改。在大多数情况下,这就足够了,但是如果我们的同事确实更新了依赖关系,仅仅拉出新的package.json
和新的package-lock.json
是不够的。我们还需要运行npm install
来更新node_modules
。
问题是,如果我们忘记了npm install
,我们最终会得到错误,这些错误将使我们花费一些时间来识别并最终意识到:“哦!该依赖项已更新!”。
因此,我真正想要的是一种钩子,它将在每次更改文件package-lock.json
时运行npm install
。
虽然完全是新手,但是我还是有一些问题:
post-update
吗?还是应该post-receive
?还是post-checkout
?package-lock.json
在我进行的更改中已更新,如何获取信息?修改
我发现this似乎可以完美解决我的问题。检查工作正常后,我将作为答复。
答案 0 :(得分:1)
我认为这是您要寻找的:https://git-scm.com/docs/githooks#_post_merge
那么,如何使用它?好了,您将需要编写一些代码行来处理该问题。问题在于它位于您的.git文件夹中。您可以将其配置为全局“事物”,但仍需要控制并将其分发给所有同事。
我编写了一个https://pypi.org/project/hooks4git/工具,它简单易用,但又灵活到足以在任何编程语言中使用。
这是一个用Python编写的工具,因此,是的,您在操作系统上需要python。 但是之后,您可以创建自定义的“ check-if-packagejson-was-changed-and-do-npm-install.js”并将其链接到.hooks4git.ini文件,就是这样。
此文件位于存储库中。
我只是注意到我错过了一些挂钩,特别是后期合并,并为此增加了支持...它现在基于Travis构建!主要思想是,我将收集所有可能的数据,并在适当的事件上调用您的自定义脚本。您可以使用自己喜欢的语言编写其余代码。
希望这会有所帮助。