You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular CLI 6:库依赖应放置在何处

如何在Angular CLI库项目中管理第三方依赖

好问题!我刚帮几个项目完成过类似的Angular CLI库迁移,这个依赖管理的点确实容易搞混,咱们分情况说清楚:

1. 运行时依赖(你的库代码实际需要调用的第三方包)

这类依赖是库功能的一部分,用户安装你的库时可能需要它们,必须放在**projects/ng-app-state/package.json**里,但还要细分两种情况:

  • Peer Dependencies:如果依赖是用户的Angular项目必然会包含的(比如@angular/core、rxjs、@angular/common),把它们放在库的package.json的peerDependencies字段中。这样可以避免重复打包相同的核心依赖,同时要求用户的项目满足版本兼容要求。
  • 常规 Dependencies:如果是你的库独有的、用户项目不一定会用到的第三方包(比如某个特定的状态管理工具、日期处理库),放在库的package.json的dependencies字段中。用户安装你的库时,这些包会自动被安装。

小技巧:安装这类依赖时,用npm install <package-name> --project=ng-app-state,Angular CLI会自动把依赖加到对应库的package.json里,不用手动修改。

2. 开发/构建依赖(仅用于库开发阶段的工具)

这类依赖只在你开发、测试、打包库的时候用到,不需要随库发布给用户,应该放在**根目录的package.json**的devDependencies字段中,比如:

  • 测试工具:jasmine、karma
  • 代码规范工具:eslint、prettier
  • 构建辅助工具:@angular-devkit/build-angular

安装这类依赖时,直接用npm install <package-name> --save-dev就可以,它们会自动加到根目录的devDependencies,整个工作区的项目都能共享这些工具。

关键验证步骤

做完依赖配置后,你可以运行ng build ng-app-state打包库,然后检查dist/ng-app-state目录下的package.json:

  • Peer Dependencies会被保留,提示用户需要自行安装兼容版本
  • 常规 Dependencies会被包含在发布包的依赖列表里
  • 根目录的devDependencies不会出现在发布包中

内容的提问来源于stack exchange,提问作者Eric Simonton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:25:13