天天看點

将所有 Node.js 依賴包更新到最新版本

當使用  npm install <packagename>  安裝軟體包時,該軟體包最新的可用版本會被下載下傳并放入 

node_modules

 檔案夾中,并且還會将相應的條目添加到目前檔案夾中存在的 

package.json

 和 

package-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"
      }
    }
  }
}      

現在,這兩個檔案告訴我們,已安裝了 cowsay 的 

1.3.1

 版本,并且更新的規則是 

^1.3.1

(這對于 npm 版本控制規則意味着 npm 可以更新到更新檔版本和次版本:即 

1.3.2

1.4.0

、依此類推)。

如果有新的次版本或更新檔版本,并且輸入了 

npm update

,則已安裝的版本會被更新,并且 

package-lock.json

 檔案會被新版本填充。

package.json

 則保持不變。

若要發覺軟體包的新版本,則運作  npm outdated 

以下是一個倉庫中一些過時的軟體包的清單,該倉庫已很長時間沒有更新:

将所有 Node.js 依賴包更新到最新版本

這些更新中有些是主版本。 運作 

npm update

 不會更新那些版本。 主版本永遠不會被這種方式更新,因為它們(根據定義)會引入重大的更改,

npm

 希望為你減少麻煩。

若要将所有軟體包更新到新的主版本,則全局地安裝 

npm-check-updates

 軟體包:

npm install -g npm-check-updates      

然後運作:

ncu -u      

這會更新 

package.json

 檔案的 

dependencies

devDependencies

 中的所有版本,以便 npm 可以安裝新的主版本。

現在可以運作更新了:

npm update      

如果隻是下載下傳了項目還沒有 

node_modules

 依賴包,并且想先安裝新的版本,則運作:

npm install      

原文位址:http://nodejs.cn/learn/update-all-the-nodejs-dependencies-to-their-latest-version