更改包锁定后更新节点模块

时间:2018-08-20 16:36:55

标签: git npm githooks

我们在项目中使用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似乎可以完美解决我的问题。检查工作正常后,我将作为答复。

1 个答案:

答案 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构建!主要思想是,我将收集所有可能的数据,并在适当的事件上调用您的自定义脚本。您可以使用自己喜欢的语言编写其余代码。

希望这会有所帮助。