Angular是否从第三方Angular模块构建未使用的组件

时间:2018-09-25 10:43:31

标签: angular build

有一个组件库,在一个角度模块中包含100 s个组件。考虑一下,如果有人使用该库构建自己的应用程序,并且仅导入组件1、2和3。

使用nb build构建该应用程序时,模块中的所有100个组件都会被编译,还是仅组件1、2和3会被编译。

2 个答案:

答案 0 :(得分:1)

这取决于模块文件的声明数组。只有在模块文件的声明数组中添加的组件才会包含在由angular-cli生成的版本中。

答案 1 :(得分:0)

这取决于构建角度应用程序时使用的构建选项。使用

时默认

ng build --prod

构建角度cli将编译所有100(n)个组件并捆绑到应用程序中。但是使用

ng build --prod --build-optimizer

未使用的组件将被清仓。因此,仅编译和构建1,2和3组件。但是,这可能会引入一些错误。

使用--build-optimizer选项时,在Webpack上发生了三个摇动(树摇动是JavaScript上下文中通常用于消除死代码的术语)。以下文章对解决此问题很有帮助,