npm8中文文档
在某些情况下,你想表达你的包与宿主工具或库的兼容性,而不一定要做这个宿主的 require
。这通常被称为插件。值得注意的是,您的模块可能会暴露主机文档所期望和指定的特定接口。
例如:
{
"name": "tea-latte",
"version": "1.3.5",
"peerDependencies": {
"tea": "2.x"
}
}
这确保您的包 tea-latte
可以连同 与主机包 tea
的第二个主要版本一起安装。npm install tea-latte
可能会产生以下依赖关系图:
├── tea-latte@1.3.5
└── tea@2.2.0
在 npm 版本 3 到 6 中,peerDependencies
不会自动安装,如果在树中发现无效版本的对等依赖项,则会发出警告。从 npm v7 开始,默认安装 peerDependencies。
如果无法正确解析树,则尝试安装另一个具有冲突要求的插件可能会导致错误。出于这个原因,请确保您的插件要求尽可能广泛,而不是将其锁定到特定的补丁版本。
假设主机符合 semver,只有主机包主要版本的更改会破坏您的插件。因此,如果您使用过每个 1.x 版本的主机包,请使用 "^1.0"
或 "1.x"
来表达这一点。如果您依赖 1.5.2 中引入的功能,请使用 "^1.5.2"
。