什麼是 Node 模組中的對等依賴?
對 package.json 文件中的 peerDependencies 字段進行簡單解釋
在一些 package.json 文件中,你可能會看到以下幾行代碼:
1 | { |
你可能已經看過 dependencies 和 devDependencies,但沒有看過 peerDependencies。
dependencies 是你的項目所依賴的包。
devDependencies 是在開發階段所需的包。比如測試框架像 Jest,或是其他像 Babel 或 ESLint 這樣的工具包。
在這兩種情況下,當你安裝一個包時,它的 dependencies 和 devDependencies 會被自動安裝。
然而,peerDependencies 不同。它們不會自動安裝。
當一個依賴被列為 peerDependency,它並不會自動安裝。相反,包含該包的程式碼必須將其列為自己的依賴。
如果你運行 npm install,但沒有找到這個依賴的話,npm 會給你一個警告。
舉個例子,假設包 a 包含依賴 b:
a/package.json
1
2
3
4
5
6 {
//...
"dependencies": {
"b": "1.x"
}
}
包 b 又要求包 c 為其 peerDependency:
b/package.json
1
2
3
4
5
6 {
//...
"peerDependencies": {
"c": "1.x"
}
}
在包 a 中,我們必須將 c 添加為依賴,否則當你安裝包 b 時,npm 會給出一個警告(並且代碼可能在運行時失敗):
a/package.json
1
2
3
4
5
6
7 {
//...
"dependencies": {
"b": "1.x",
"c": "1.x"
}
}
版本必須兼容,所以如果一個 peerDependency 的版本被列為 2.x,你不能安裝 1.x 或其他版本。這都遵循 語義化版本號。
tags: [“Node.js”, “peerDependencies”, “npm”]