首頁 > web前端 > js教程 > 詳解檢測和升級專案中Node依賴的方法

詳解檢測和升級專案中Node依賴的方法

青灯夜游
發布: 2021-04-25 10:08:27
轉載
5031 人瀏覽過

本篇文章為大家介紹一下檢測和升級專案中Node依賴的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

詳解檢測和升級專案中Node依賴的方法

在現代前端開發中,一個專案往往依賴眾多第三方包,多則幾十個甚至過百,那麼如何偵測及升級這些依賴就成為了難題。 【相關推薦:《nodejs 教學》】

npm outdated 和npm update


好在npm 給我們提供了npm outdatednpm update 這兩個指令。

進入一個較舊的 react 項目,然後執行 npm outdated,如預期的一樣,給出了升級建議。

詳解檢測和升級專案中Node依賴的方法

然後執行 npm update 進行升級。沒反應 ???

看了看 --help,莫非是使用姿勢不對?嘗試 npm update less 。沒反應 1 

繼續嘗試 npm update less --save#,沒反應依舊。

圖中出現的Wanted 歸Wanted,但還是想升級到Latest 

然後透過npm update --dd 查看了詳細日誌,發現最終總是會出現這樣一些提示:

詳解檢測和升級專案中Node依賴的方法

看起來像是升級無望了。筆者認為這可能是為了對於專案的穩定考量?畢竟跨大版本升級,還是很有風險的。但小版本也不升級這就說不過去了。

看來 npm update 是指望不上了。

於是 ncu 來了!

神器ncu


ncunpm-check-updates,它可以偵測並更新package.json 中的依賴套件是最新的latest 版本。下面就來看下如何使用。

首先是安裝依賴套件npm install -g npm-check-updates,當然也可以不安裝,使用npx  執行,這裡筆者使用的全域安裝的方式。

安裝完畢後,可以透過 npm-check-updates 執行指令,也可以透過 ncu 快速執行。

偵測可升級的依賴套件

仍然是剛才那個舊的react 項目,執行ncu 進行升級偵測:

詳解檢測和升級專案中Node依賴的方法

嗯!看起來清晰多了,直接給了可以升級到的最新版本,這裡的截圖只截了一部分,清單還有好長…。但問題不大,畢竟 ncu 可以一鍵升級。

一鍵升級

ncu 給我們提供了一鍵升級的命令參數-u,執行ncu -u即可。

執行完畢後輸出訊息較長,只挑了最後一句:

Run npm install to install new versions.
登入後複製

乾脆利索,讓人懷疑。然後到 package.json 中查看,果然是個實力派,能升級全給升級到最新版本了。

執行一鍵升級需要慎重,畢竟ncu -u 不會考慮跨版本相容的問題,有些套件進行大版本升級時可能會不相容,這裡需要注意,要做好改代碼的準備。

全域包偵測、按需偵測

當然ncu 還可以偵測全域安裝的包,執行ncu - g 即可:

詳解檢測和升級專案中Node依賴的方法

不僅如此,如果只需偵測單獨的某個套件、或需要忽略掉某個套件,這都是可以的,這是ncu 倉庫給出的使用範例:

# upgrade only mocha
ncu mocha
ncu -f mocha
ncu --filter mocha

# upgrade packages that start with "react-"
ncu react-*
ncu "/^react-.*$/"

# upgrade everything except nodemon
ncu \!nodemon
ncu -x nodemon
ncu --reject nodemon

# upgrade only chalk, mocha, and react
ncu chalk mocha react
ncu chalk, mocha, react
ncu -f "chalk mocha react"

# upgrade packages that do not start with "react-".
ncu \!react-*
ncu '/^(?!react-).*$/' # mac/linux
ncu "/^(?!react-).*$/" # windows
登入後複製

設定檔模式

#如果覺得在命令列輸入各種過濾條件太麻煩,那還有更方便的使用方式,那就是創建一個配置文件,如.ncurc.json

{
  "upgrade": true,
  "reject": ["webpack", "antd"]
}
登入後複製

可配置字段釋義:

  • upgrade : 是否需要一鍵升級
  • filter:只升級哪些模組
  • #reject:要忽略哪些模組

當然設定檔命名還是隨意的,如預設套路式命名:.ncurc.{json,yml,js}。或是自訂檔名,然後使用  --configFileName  及--configFilePath 進行檔案指定。

API 调用

ncu 还对外暴露了 API,我们可以通过编程的方式检测并升级某个项目的依赖包。使用示例如下:

const ncu = require('npm-check-updates');

(async () => {
  const upgraded = await ncu.run({
    // Pass any cli option
    packageFile: './package.json',
    upgrade: true,
    // Defaults:
    // jsonUpgraded: true,
    // silent: true,
  });

  console.log(upgraded); // { "mypackage": "^2.0.0", ... }
  // `upgrade: false`:返回可升级的包及最新版本信息
	// `upgrade: true`:返回已经升级的包及最新版本信息
})();
登入後複製

目前,我们的脚手架里就用到了这个特性,通过脚手架来对项目依赖进行升级。

OK,以上就是关于 Node 依赖检测并升级的全部内容,你开始用 ncu 了吗?

更多编程相关知识,可访问:编程入门!!

以上是詳解檢測和升級專案中Node依賴的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板