MorJS phantomDependency - 幽靈依賴檢測

2023-11-07 16:35 更新
  • 類型: ?object? 或 ?boolean?
  • 默認值: 開發(fā)模式 ?true? | 生產(chǎn)模式 ?false?

開啟關(guān)閉或配置幽靈依賴檢測功能,不配置時開發(fā)模式下默認為 ?true? 開啟檢測 warn 警告,生產(chǎn)模式下默認為 ?false? 關(guān)閉檢測,配置值為 ?object? 時支持 ?mode? 和 ?exclude? 兩個屬性:

  • ?mode?: 檢測模式,可配置為 ?'warn'? 和 ?'error'? 兩種,默認 ?'warn'? 時僅進行警告,配置為 ?'error'? 時會作為錯誤拋出
  • ?exclude?: ?Array<string>? 指定哪些 npm 包不作為幽靈依賴從而跳過檢測
// 配置示例一:關(guān)閉檢測(生產(chǎn)模式下默認)
{
phantomDependency: false
}

// 配置示例二:開啟檢測 warn 警告,但是某些包不判斷為幽靈依賴
{
phantomDependency: {
mode: 'warn',
exclude: ['@morjs/utils']
}
}

// 配置示例三:開啟檢測 error 警告,但是某些包不判斷為幽靈依賴
{
phantomDependency: {
mode: 'error',
exclude: ['@morjs/utils']
}
}
幽靈依賴: 當一個項目使用了一個沒有在其 package.json 中聲明的包時,就會出現(xiàn)"幽靈依賴"
  • 出現(xiàn)原因: npm 3.x 開始「改進」了安裝算法,使其扁平化,扁平化就是把深層的依賴往上提。好處是消除重復(fù)依賴,代價則是引入幽靈依賴問題,因為往上提的依賴你在項目中引用時就能跑
  • 潛在危害:
  1. 不兼容的版本,比如某依賴過了一年發(fā)布大版本,然后大版本被提升到 node_modules root 目錄,你就會使用不兼容的版本
  2. 依賴缺失,比如你的直接依賴小版本更新后不使用你之前依賴的間接依賴,再次安裝時就不會出現(xiàn)這個依賴,或者比如多個直接依賴的間接依賴沖突時,可能也不會做提升


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號