簡體   English   中英

如何將 node_modules 與實際的 package.json 同步?

[英]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"

運行上面的腳本

  • git pull - 運行chmod +x post-merge使其可執行,然后mv post-merge .git/hooks/將其放入 git hooks。
  • git checkout - 運行chmod +x post-checkout然后mv post-checkout .git/hooks/

npm install將安裝從包的最新版本packages.json這往往是不期望的行為。

當您在分支之間切換時,您很可能希望在package-lock.json修復版本。 從 npm 5.7.0 開始,有一個特殊的命令npm ci可以做到這一點。

為什么“npm install”重寫 package-lock.json?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM