2

我们正在构建一个 Angular 应用程序,它应该具有发现和动态加载自定义库的能力,即在构建时未知/不可用的库。

为了支持这一点,我们不能对主应用程序进行 tree-shake,因为这些自定义库可以使用来自第三方库(例如 angular、rxjs)的符号,而主应用程序没有。

用 angular-cli v6 解决它的方法是什么?有没有办法在生产构建中禁用摇树?

4

1 回答 1

1

我认为摇树过程是 angular-cli AOT 构建功能的一部分,但文档本身并没有提供很多关于这是如何完成的信息以及天气是否可以启用/禁用此功能。就我而言,没有直接的方法可以在 angular-cli 中禁用摇树。cli 文档说明如下:

所有构建都使用捆绑和有限的 tree-shaking,而 --prod 构建还通过 UglifyJS 运行有限的死代码消除。

因此,这似乎与 AOT 密切相关。禁用树抖动可能也与 angular-cli 在过去一年左右的构建选项中试图实现的目标相反,主要是为了使其成为一个易于使用的工具来减少 angular 的捆绑大小。

angular-cli 提供了一些选项来调整建筑物,但是对于摇树的部分,我想你要么必须以某种方式去使用它,或者,如果不可能,你可能需要更深入地挖掘并尝试创建自己的使用 webpack 之类的东西构建(我认为 cli 在其底层使用)。你可以在那里调整几乎所有的东西。这种自由当然伴随着增加时间投资的成本,以创建与 Angular 的build命令相当的高效构建。

于 2018-05-17T00:20:25.000 回答