將所有Node依賴項更新到最新版本

如何將package.json文件中的所有npm依賴項存儲更新為可用的最新版本?

當您使用安裝軟件包時npm install <packagename>,則下載了該軟件包的最新可用版本並將其放入node_modules文件夾,並且相應的條目已添加到package.jsonpackage-lock.json當前文件夾中存在的文件。

npm計算依賴關係,並安裝這些依賴關係的最新可用版本。

假設您安裝了cowsay,很酷的命令行工具,可讓您說牛事物

當你npm install cowsay,此條目將添加到package.json文件:

{
  "dependencies": {
    "cowsay": "^1.3.1"
  }
}

這是從中提取的package-lock.json,為了清楚起見,我刪除了嵌套的依賴項:

{
  "requires": true,
  "lockfileVersion": 1,
  "dependencies": {
    "cowsay": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/cowsay/-/cowsay-1.3.1.tgz",
      "integrity": "sha512-3PVFe6FePVtPj1HTeLin9v8WyLl+VmM1l1H/5P+BTTDkMAjufp+0F9eLjzRnOHzVAYeIYFF5po5NjRrgefnRMQ==",
      "requires": {
        "get-stdin": "^5.0.1",
        "optimist": "~0.6.1",
        "string-width": "~2.1.1",
        "strip-eof": "^1.0.0"
      }
    }
  }
}

現在,這兩個文件告訴我們我們已經安裝了版本1.3.1關於Cowsay,我們的更新規則是^1.3.1,對於npm版本控制規則意味著npm可以更新到補丁程序和次要版本:1.3.21.4.0等等。

但不適用於破壞兼容性的主要版本更改,這意味著在此示例中,2.0和更高。

如果有新的次要版本或補丁版本,我們輸入npm update,已安裝的版本已更新,並且package-lock.json努力地用新版本填充文件。

package.json保持不變。

要發現軟件包的新版本,請運行npm outdated

以下是一個存儲庫中一些過時的軟件包的列表,我已經有一段時間沒有更新了:

其中一些更新是主要版本。跑步npm update不會更新這些版本。絕不會以這種方式更新主要版本,因為它們(根據定義)會引入重大更改,並且npm希望省去您的麻煩。

要將所有軟件包更新到新的主要版本,請安裝npm-check-updates全球包裝:

npm install -g npm-check-updates

然後運行它:

ncu -u

這將升級所有版本提示package.json文件,到dependenciesdevDependencies,因此npm可以安裝新的主要版本。

現在,您可以運行更新了:

npm update

如果您下載的項目沒有node_modules依賴項,您想先安裝閃亮的新版本,然後運行

npm install

免費下載我的Node.js手冊


更多節點教程: