目前,当我为Angular 2创建npm包时,主要是Angular 2服务,我使用peerDependencies
如下:
"peerDependencies": {
"@angular/core": "^2.0.0",
"rxjs": "5.0.0-beta.12",
"zone.js": "^0.6.6"
}
我没有使用dependencies
,因为我不希望我的包裹在npm install
期间提取它们。我预计目标应用程序是Angular 2。
并在devDependencies
中编译我的包所需的所有依赖项:
"devDependencies": {
"@angular/core": "^2.0.0",
"rxjs": "5.0.0-beta.12",
"zone.js": "^0.6.6",
"typescript": "*",
"typings": "*"
}
但是,我应该使用dependencies
还是peerDependencies
?
我主要担心的是使用该软件包的应用程序。它们是否会影响消费应用程序的构建过程?
或者我做错了,应该切换回dependencies
?
答案 0 :(得分:5)
来自https://nodejs.org/en/blog/npm/peer-dependencies/
Peer Dependencies
我们需要的是一种表达这些"依赖关系的方法。之间 插件及其主机包。某种说法,"我只在工作的时候 插入我的主机包的1.2.x版本,所以如果你安装我, 确保它与兼容的主机并列。"我们称之为 关系是同伴的依赖。
正如我所解释的那样,对等依赖关系只是告诉使用你的软件包的人,如果他们没有安装对等的依赖项,那么它将无法工作。