【发布时间】:2019-06-27 11:42:12
【问题描述】:
我在 NPM 上有这个小的 angular 包,我一直支持它在所有新版本的 angular 中可用。在我的 package.json 中,我已将 angular 添加到 peerDependencies 列表中,以确保它们始终存在于使用我的库的项目中:
"peerDependencies": {
"@angular/animations": "^7.x",
"@angular/common": "^7.x",
"@angular/core": "^7.x",
"@angular/platform-browser": "^7.x",
"rxjs": "^6.x",
"typescript": ">=3.1.1 <3.3.0",
"zone.js": "^0.8.x"
}
但是随着 Angular 的每个新主要版本的发布,我的库的用户在执行npm install 时会不断遇到对等依赖项不匹配警告显示在控制台中,如下所示:
npm WARN ng2-go-top-button@7.1.0 requires a peer of @angular/animations@^7.x but none is installed. You must install peer dependencies yourself.
所以我的问题是:在我的库中将 angular 声明为依赖项的正确方法是什么,这样我就不必每次发布新的 angular 时都更新它?也许我根本不需要peerDependencies?但是如何确保使用我的库的项目始终拥有所有需要的库?提前致谢。
【问题讨论】:
-
问题不在于如何安装对等体。我正在询问在我的库中声明这些依赖项的正确方法,以便我的用户不会每次都收到这些警告,新的角度已发布。
-
我完全理解,但我的问题是,我什至必须让我的角度库依赖于这些
angular依赖项?也许我可以删除它们,以免每次发布新的angular主要版本时我的用户都会收到警告?但是在这种情况下,可能会出现有人安装了我的 lib,但是没有安装一些angular依赖项并且我的 lib 无法正常工作的情况。我想知道,这样做的常用方法是什么。 -
是的,每次
angular发布时都会发生这种情况。每次我必须将其更改为7.x、8.x等。但我想打破这个圈子并找到另一种处理方法,这就是我问这个问题的原因。
标签: angular npm versioning