[英]How to sync node_modules with actual package.json?
例如,如果我已经用 git 切换了分支并希望将node_modules
与当前的package.json
同步。 我怎么做?
如果您的新分支有新的 npm 包或更新的版本依赖项,只需在切换分支后再次运行$ npm install
。
如果您的新分支从 package.json 中删除了 npm 包,请运行$ npm prune
当我们拉取或检出不同的分支时,当package.json发生变化时,我们可以使用git hooks自动运行npm install
。
这是需要执行的脚本。 我们主要检查差异中是否存在package.json文件。
#/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
使其可执行,然后mv post-merge .git/hooks/
将其放入 git hooks。chmod +x post-checkout
然后mv post-checkout .git/hooks/
npm install
将安装从包的最新版本packages.json
这往往是不期望的行为。
当您在分支之间切换时,您很可能希望在package-lock.json
修复版本。 从 npm 5.7.0 开始,有一个特殊的命令npm ci
可以做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.