【发布时间】:2018-09-26 02:30:29
【问题描述】:
有一个组件库,其中包含 100 个 Angular 模块内的组件。考虑一下,如果有人使用该库构建自己的应用程序并且只导入组件 1、2 和 3。
当使用nb build 构建该应用程序时,模块内的所有 100 个组件都会被编译还是只编译组件 1、2 和 3。
【问题讨论】:
有一个组件库,其中包含 100 个 Angular 模块内的组件。考虑一下,如果有人使用该库构建自己的应用程序并且只导入组件 1、2 和 3。
当使用nb build 构建该应用程序时,模块内的所有 100 个组件都会被编译还是只编译组件 1、2 和 3。
【问题讨论】:
这取决于构建 Angular 应用程序时使用的构建选项。使用时默认
ng build --prod
构建 Angular cli 将编译所有 100(n) 个组件并捆绑到应用程序中。但是当使用
ng build --prod --build-optimizer
未使用的组件将被丢弃。所以只编译和构建了 1,2 和 3 个组件。但是,这可能会引入一些错误。
当使用--build-optimizer 选项时,webpack 上会发生三个摇晃的过程(树摇晃是 JavaScript 上下文中常用的一个术语,用于消除死代码)。以下文章对解决此问题很有帮助,
【讨论】:
这取决于模块文件的声明数组。只有在模块文件的声明数组中添加的组件,才会包含在 angular-cli 生成的构建中。
【讨论】: