如何将node_modules与实际的package.json同步

时间:2015-09-01 16:08:13

标签: npm

例如,我已经使用git切换了分支,并希望将node_modules与当前的package.json同步。我该怎么做?

3 个答案:

答案 0 :(得分:14)

如果您的新分支有新的npm软件包或更新的版本依赖项,请在切换分支后再次运行$ npm install

如果您的新分支从package.json中删除了npm包,请运行$ npm prune

答案 1 :(得分:1)

package.json 发生变化(当我们拉入或签出到其他分支时),我们可以利用git hooks自动运行rb2.release_resources()

这是需要执行的脚本。我们基本上检查diff中是否存在 package.json 文件。

npm install

要在上面运行上述脚本

  • git pull-运行#/usr/bin/env bash changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" check_run() { echo "$changed_files" | grep --quiet "$1" && eval "$2" } check_run package.json "npm install" 使其可执行,然后chmod +x post-merge放入git hooks。
  • git checkout-运行mv post-merge .git/hooks/,然后运行chmod +x post-checkout

答案 2 :(得分:0)

npm install将安装packages.json中最新版本的软件包,这通常不是您期望的行为。

最有可能在分支之间切换时,您需要在package-lock.json中修复版本。从npm 5.7.0开始,有一个特殊的命令npm ci会执行此操作。

Why does "npm install" rewrite package-lock.json?

中的更多详细信息