我创建了一个 Phaser 插件,但我不确定如何为其正确定义peerDependency。问题是 Phaser 最近已被复制并移动到新的存储库“phaser-ce”。该插件取决于“[电子邮件受保护]”或“[电子邮件受保护]”。
"peerDependencies": {
"phaser": "2.x" || "phaser-ce": "2.x"
显然这行不通……这可能吗? 谢谢!
应该是这样的:
"peerDependencies": {
"phaser": "2.x",
"phaser-ce": "2.x"}
当您需要同一包的不同版本时,可以使用双管,例如:
"peerDependencies": {
"phaser": "2.x || 3.x",
"phaser-ce": "2.x"}
不幸的是,截至(几乎)2024 年,不可能将这两个包中的任何一个定义为对等依赖项。
您最好的选择是将两者添加到您的
peerDependencies
和 peerDependenciesMeta
package.json 的属性中,如 @Doruk 建议
{
"peerDependencies": {
"phaser": "2.x",
"phaser-ce": "2.x"
},
"peerDependenciesMeta": {
"phaser": {
"optional": true
},
"phaser-ce": {
"optional": true
}
}
}
并在您的
README
中包含一些附加信息
## Installation
To use this library, you need to have either `phaser` or `phaser-ce` package installed in your project
或
根本不要将它们包含在 package.json 中,并坚持
README
加上一些运行时检查。