[英]How to add npm dependency as peer dependency
npm 是否可以選擇像 yarn option --yarn
一樣將依賴項安裝為對等依賴項,而不是手動添加,例如:
"peerDependencies": {
"@angular/core": "^7.0.0"
}
感謝@Broncha,通過對問題的更多澄清進行更新
問題是如何將對等依賴項添加到項目中。 那是
npm i dep
在package.json中的“dependencies”添加依賴,npm i -D dep
將依賴添加到package.json中的“devDependencies”。如何安裝將其添加到 package.json 中的“peerDependencies”的依賴項?
peerDependencies
中的package.json
npm v3 刪除了對等依賴項的自動安裝,此功能在 npm v7 中老化添加。
因此,將您的 npm 更新到版本 7 或更高版本將解決大部分問題。
要安裝對等依賴,您實際上需要手動修改您的package.json
文件。
比如你想安裝angular的核心組件庫作為對等依賴,
npm i @angular/core
這將在依賴項 object 中添加一個屬性。
"dependencies": {
"@angular/core": "^7.0.0"
}
peerDependencies
鍵。"peerDependencies": {
"@angular/core": "^7.0.0"
}
額外:如果您需要相同 package 的兩個版本,那么您可以像這樣修改packge.json
文件,
"peerDependencies": {
"@angular/core": "^6.0.0"
"@angular/core": "^7.0.0"
}
所有其他答案都在談論 NPM 命令如何處理在當前項目的 package.json 中安裝當前“deps”和“devDeps”的“peerDeps”,並自動安裝它們。
但問題是如何使用帶有特定標志的 NPM 命令將 deps 安裝為 'peerDeps' 並寫入當前項目的 package.json。
不幸的是,答案是直到 NPM@7 都沒有這樣的標志
我猜想 NPM 不會處理安裝 deps 的命令,因為將“peerDeps”添加到 package.json 並不真的需要 NPM 來將 package 安裝到 /node_modules/。 這只是將文件配置更改為 package.json。 但我知道人們不想在 package.json 文件中手動添加/刪除“deps”並希望 NPM 這樣做,這可能是因為 NPM 將處理“deps”的順序。 另一個原因是,“peerDeps”總是使用一系列 semver,並且必須手動編輯,而不是通過npm install
命令。 像react-redux :
"peerDependencies": {
"react": "^16.8.3 || ^17"
},
我認為 NPM@7 應該提供一種方法來支持它,因為現在它正式能夠處理“peerDeps”,並且此功能是其中的一部分。
之前的peerDependencies
版本默認不安裝 peerDependencies,開發者需要自己管理和安裝 peer 依賴。
npm 是否可以選擇將依賴項安裝為對等依賴項,如紗線選項--yarn
,而不是手動添加,例如:
"peerDependencies": {
"@angular/core": "^7.0.0"
}
感謝@Broncha,更新了對問題的更多澄清
問題是如何向項目添加對等依賴項。 那是
npm i dep
將依賴項添加到 package.json 中的“依賴項”中,npm i -D dep
將依賴項添加到 package.json 中的“devDependencies”。如何安裝將其添加到 package.json 中的“peerDependencies”的依賴項?
您不能直接在 npm 3 中執行此操作,因此請查看下面的參考資料以獲取詳細信息 https://stackoverflow.com/a/35207983/10309265您可以通過任一方式參考: https://stackoverflow.com/a/35690137/10309265
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.