如何为Angular服务包设置@angular/core的peerDependencies版本?
概述
你提到的把@angular/core的peer依赖指定为固定的"x.x"版本其实不太合适,因为你的包兼容多个Angular主版本,我们可以通过设置宽泛的版本范围来适配更多使用不同Angular版本的项目。
正确的peerDependencies配置应该是这样的:
"peerDependencies": { "@angular/core": ">=5.0.0 <18.0.0" }
这个配置表示你的包可以兼容Angular 5.0.0到17.x.x的所有版本(<18.0.0排除了尚未发布的Angular 18,等它发布后你可以验证API兼容性再更新范围)。
背景
从你提供的代码来看,你的服务只依赖了@angular/core中的Injectable装饰器——这个API在Angular 5及之后的所有主版本中都保持了稳定的向后兼容性,没有破坏性变更。这意味着只要项目使用的是Angular 5或更高版本,你的包就能正常工作。
如果设置成固定的"x.x"版本,会导致使用其他Angular版本的用户无法安装你的包,或者需要额外处理版本冲突,这显然不是理想的情况。
另外补充一点:如果你想让配置更灵活,也可以使用"^5.0.0"这样的版本符号,它表示兼容5.0.0及以上的所有5.x版本,但考虑到Angular主版本(比如6、7...17)之间你的包也能正常工作,>=5.0.0 <18.0.0的范围会更准确。
内容的提问来源于stack exchange,提问作者Ole
相关产品推荐
相关产品推荐

