构建启用了Ivy的monorepo Angular9库是个坏主意
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建启用了Ivy的monorepo Angular9库是个坏主意相关的知识,希望对你有一定的参考价值。
默认情况下,当创建Angular9(当前为RC)库时,将在生产模式下禁用Ivy的情况下构建该库。这是有道理的,因为尚不支持发布为Ivy编译的库。
但是,就我而言,我有一个monorepo项目,我们使用库来组织代码。这些库从不推送到NPM,而仅用于在多步骤构建过程中构建主应用程序。在禁用Ivy的情况下构建库意味着首先要构建的主应用程序必须遍历所有这些库,并调用NGCC来生成代码的Ivy版本,这看起来效率极低,而且简直很奇怪。
问题是:仅仅为这些库的生产版本启用Ivy是一个坏主意吗?如果是这样,为什么?可能会出现哪些潜在问题?
Google之所以不建议发布Ivy库,是因为开发人员仍可以选择退出Ivy。一旦他们完成并以角度10将所有人转移到新的构建系统,那么他们很可能会在已发布的库中重新访问对Ivy的支持。
我想说的是,如果您在整个项目中都使用Ivy,而不是将其提供给将关闭Ivy的人员,则将库设置为Ivy。就像您说的那样,它效率很低,因为它必须将库转换为Ivy。 Google不建议发布。并不是说他们不建议使用Ivy库。
我用https://indepth.dev/the-angular-ivy-guide-for-library-authors/来加倍回答。我需要了解为什么 Google建议不要发布Ivy库。
以上是关于构建启用了Ivy的monorepo Angular9库是个坏主意的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Nx monorepo 中为 NestJS 和 Angular 之间共享的 API 接口启用 Swagger?
Angular 8:使用库构建 monorepo 应用程序的更好方法