【发布时间】:2019-12-01 21:36:21
【问题描述】:
我的 Angular monorepo 项目中有几个应用程序。此外,我还编写了大约 5 个库以供跨应用程序使用。
我想知道的是如何更好地构建/架构这些库。
ins如下:
- 库仅供内部使用(意味着除了
projects文件夹中的应用外,不得在其他应用中发布或使用) - 库具有不同的依赖关系,例如
lodash和RxJs - 一个库可以在其内部导入另一个库
到目前为止我做了什么:
- 在每个库的
ng-package.json中指定umdModuleIds。 - 在
lodash和RxJs等外部库上指定peerDependencies - 设置我的应用构建,其中包含
prebuild和大约 5 个命令ng build lib-name通过“&&”组合 - 我用下一种方式导入 Lodash
import { cloneDeep } from 'lodash'
现在我看到我的main.js 块比将一些服务/组件/函数提取到外部库之前要大得多。现在main.js 在 prod build 上的大小是 2.1 Mb,在我看来这太大了。
另外,我不确定是否值得为每个库(UMD、FESM2015、FESM5)制作 3 个不同的版本。
我按照文档中的建议从 dist 文件夹导入库,遵循下一个表单 import { LibService } from 'lib'。
【问题讨论】:
-
nx.dev 可能就是您要找的。span>
标签: angular angular-cli monorepo ng-packagr nrwl