【问题标题】:main.bundle.js size taking much too load in Angular 4main.bundle.js 大小在 Angular 4 中负载过大
【发布时间】:2018-07-30 19:10:30
【问题描述】:

我使用的是 Angular 5.2.2 版本,当一个新用户第一次点击我的实时应用程序时,需要花费太多时间;这个 main.bundle.js 大小的原因是太大了,因此比平时需要更多的时间。

我在少数组件上应用了“ng build --prod”以及一些延迟加载,但它不起作用。 以及我还删除了应用程序中的冗余组件、资产等,但它也不起作用。

任何人都可以建议我做什么 提前致谢 亚西尔

【问题讨论】:

标签: javascript angular typescript npm


【解决方案1】:

我遇到了同样的问题,因为我没有使用延迟加载。延迟加载是一种将应用程序分离到不同模块中的技术,这些模块仅在应用程序需要时才需要。 Lazy loading Angular's official documentation

在我的例子中,我为每个父 url 路由创建了一个模块(例如 /car -> 创建一个模块,/car/:id -> 将它包含在你的汽车模块中)。使用这种策略,我现在的加载时间约为 3 秒。但以前是 12 秒左右。

【讨论】:

    【解决方案2】:

    首先,您确定缓慢是由 main.bundle.js 文件引起的吗?它的大小是多少?

    正如所指出的,延迟加载的模块通常会有所帮助

    独立于 Angular,确保在您的网络服务器(nginx 或 nodejs 或任何您使用的)上启用压缩

    对于nodejs

    https://github.com/expressjs/compression

    对于 nginx

    https://www.nginx.com/resources/admin-guide/compression-and-decompression/

    【讨论】:

    • main.bundle.js 首次加载时的大小为 3.30 MB
    • 你的网络服务器是什么?
    【解决方案3】:

    您可以尝试 Ahead of Time Compilation,这将使您的包大小更小。

    ng build --prod --aot
    

    这将从包中删除编译器代码,并且如果模板中未使用任何未使用的功能(如 ngSwitch 或 ngIf),也会删除。

    【讨论】:

    • 嗨@YasirShabbirChoudhary,想知道您是否已从应用模块中删除了延迟加载的模块。
    • 是的,我在应用延迟加载时将其从 AppModule 中删除了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2019-09-04
    相关资源
    最近更新 更多