如何將package.json文件中的所有npm依賴項存儲更新為可用的最新版本?
當您使用安裝軟件包時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"
}
}
}
}
現在,這兩個文件告訴我們我們已經安裝了版本1.3.1
關於Cowsay,我們的更新規則是^1.3.1
,對於npm版本控制規則意味著npm可以更新到補丁程序和次要版本:1.3.2
,1.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
文件,到dependencies
和devDependencies
,因此npm可以安裝新的主要版本。
現在,您可以運行更新了:
npm update
如果您下載的項目沒有node_modules
依賴項,您想先安裝閃亮的新版本,然後運行
npm install
免費下載我的Node.js手冊
更多節點教程:
- npm軟件包管理器簡介
- Node.js簡介
- 使用Axios的HTTP請求
- 在何處託管Node.js應用
- 使用Node.js與Google Analytics(分析)API進行交互
- npx節點包運行器
- package.json指南
- npm在哪里安裝軟件包?
- 如何更新Node.js
- 如何使用或執行使用npm安裝的軟件包
- package-lock.json文件
- 使用npm的語義版本控制
- 您是否應該將node_modules文件夾提交到Git?
- 將所有Node依賴項更新到最新版本
- 使用Node.js解析JSON
- 查找npm軟件包的安裝版本
- Node.js流
- 安裝較舊版本的npm軟件包
- 在Node中獲取當前文件夾
- 如何在Node中記錄對象
- 使用導出從Node文件公開功能
- 節點和瀏覽器之間的區別
- 使用Node發出HTTP POST請求
- 使用Node獲取HTTP請求主體數據
- 節點緩衝區
- Node.js的簡要歷史
- 如何安裝Node.js
- 使用Node您需要知道多少JavaScript?
- 如何使用Node.js REPL
- 節點,從命令行接受參數
- 使用Node輸出到命令行
- 接受來自Node中命令行的輸入
- 使用`npm uninstall`來卸載npm軟件包。
- npm全局或本地軟件包
- npm依賴項和devDependencies
- Node.js事件循環
- 了解process.nextTick()
- 了解setImmediate()
- 節點事件發射器
- 建立一個HTTP服務器
- 使用Node發出HTTP請求
- Node fs模塊
- 使用Axios的Node中的HTTP請求
- 使用Node讀取文件
- 節點文件路徑
- 用Node寫入文件
- 節點文件統計
- 在Node中使用文件描述符
- 在Node中使用文件夾
- 節點路徑模塊
- Node http模塊
- 將WebSockets與Node.js結合使用
- 使用MySQL和Node的基礎知識
- Node.js中的錯誤處理
- 哈巴狗指南
- 如何從Node.js讀取環境變量
- 如何從Node.js程序退出
- Node os模塊
- 節點事件模塊
- 節點,開發與生產之間的區別
- 如何檢查Node.js中是否存在文件
- 如何在Node.js中創建一個空文件
- 如何使用Node.js刪除文件
- 如何使用Node.js獲取文件的最後更新日期
- 如何在JavaScript中確定日期是否為今天
- 如何將JSON對象寫入Node.js中的文件
- 為什麼要在下一個項目中使用Node.js?
- 從任何文件夾運行Web服務器
- 如何將MongoDB與Node.js結合使用
- 使用Chrome DevTools調試Node.js應用
- 什麼是pnpm?
- Node.js運行時v8選項列表
- 使用npm時如何解決“缺少寫訪問權限”錯誤
- 如何在Node.js中啟用ES模塊
- 如何使用Node.js生成子進程
- 如何在Express中同時獲取已解析的正文和原始正文
- 如何在Node.js中處理文件上傳
- 節點模塊中的對等依賴性是什麼?
- 如何使用Node.js編寫CSV文件
- 如何使用Node.js讀取CSV文件
- 節點核心模塊
- 使用Node.js一次增加多個文件夾的數量
- 如何將畫布打印到數據URL
- 如何使用Node.js和Canvas創建和保存圖像
- 如何使用Node.js下載圖像
- 如何在Node.js中批量重命名文件
- 如何獲取Node中文件夾中所有文件的名稱
- 如何使用Promise和基於Node.js回調的等待功能
- 如何在本地測試NPM軟件包
- 如何在運行時檢查當前的Node.js版本
- 如何使用Sequelize與PostgreSQL交互
- 使用Node.js服務HTML頁面
- 如何解決Node.js中的util.pump不是函數錯誤