首页 > 解决方案 > Angular CLI 8 和 webpack 生成优化后的 main.js 文件,该文件大于未优化的代码库

问题描述

我们是一个小型开发团队,为客户开发一个相当典型的 ERP 系统。我们创建了数百个小型输入表单、网格、子表单等,所以现在我们有大约 1600 个文件(.ts、.html),总大小约为 6 MB。

我们从默认的 SPA .NET Core 2.2 + Angular 6(升级到 8)Visual Studio 模板开始,它运行良好。除了最近我们注意到我们的构建时间变得更慢并且我们的 dist 包增长到荒谬的大小。

现在我们的构建时间大约是 25 分钟,并且大部分时间都被 ModuleConcatenationPlugin 消耗(它似乎使用 CPU 的效率有点低,永远不会超过 15%)。而且——惊喜!- main.js 为 20 MB(而 vendor.js 小于 3 MB)。

优化肯定有问题。为什么我们的 6 MB TypeScript 代码库(有很多注释和空格等等)会“优化”到 20 MB 文件?

这是 webpack 包分析器的结果。webpack 包分析器结果

如您所见, main.js 看起来很干净;没有外来代码,只有我们自己的 /src ~1600 个文件。

我们如何解决这个问题,以便我们的代码得到适当的优化(如果可能的话,减少构建时间)?

我们没有做任何极端或奇特的事情——这似乎是一个正常的用例;每个 ERP 系统都会有数百个小表格;那么为什么开箱即用的优化不能正常工作呢?

标签: javascriptangulartypescriptwebpack

解决方案


推荐阅读