Angular 角度距离文件太大,导致下载速度慢
自从我将Angular应用升级到5版,然后升级到6版后,它在浏览器中的下载速度非常慢,有时需要30秒或40秒以上。虽然我正在为生产优化构建,(Angular 角度距离文件太大,导致下载速度慢,angular,performance,build,download,production,Angular,Performance,Build,Download,Production,自从我将Angular应用升级到5版,然后升级到6版后,它在浏览器中的下载速度非常慢,有时需要30秒或40秒以上。虽然我正在为生产优化构建,(ngbuild--prod--buildoptimizer--aot),但核心文件总计超过了1兆字节 主要罪犯是 main.1acde84f0c61a49d6387.js,即831kb style.99d75733e80daf42e5f9.css,大小为269kb,以及 0.06cf948c35f50dabe8dc.js,大小为243kb 这些文件通
ngbuild--prod--buildoptimizer--aot
),但核心文件总计超过了1兆字节
主要罪犯是
,即831kbmain.1acde84f0c61a49d6387.js
,大小为269kb,以及style.99d75733e80daf42e5f9.css
,大小为243kb0.06cf948c35f50dabe8dc.js
这些文件通常都这么大吗?你知道我该如何精简它们并提高下载速度吗?原因是你将所有应用程序捆绑在一个模块中 它意味着所有的页面、组件,。。。如果把它捆成一个文件,它肯定会很重 这里的解决方案是,您应该将应用程序分离到更小的捆绑包中。在
Angular
中,它被称为模块延迟加载
,并实现预加载
(可选)以在第一次加载时减小捆绑大小
您可以阅读以下文章:
- 为您的页面创建一个模块,它还包括必要的组件
- 此模块的路由
- 使用
在loadChildren
加载此模块。诸如此类:app router
{path:'a',loadChildren:'./anynomous/anynomous.module#AnynomousModule'},
package.json
中列出了angular cli,我是从命令行构建的。这是否意味着我正在使用angular cli?我不知道这是非此即彼。我希望将供应商捆绑包与应用程序捆绑包分开,尽管我不确定如何分开。这就是ng eject的作用吗?打得好。我确实把所有的东西都集中到了一个模块中。我遵循了您链接到的教程,并为延迟加载创建了新的模块和新的子路由。我现在在dist文件夹中看到4个附加文件,例如1.b06a3b4d3470560595fb.js
。然而,下载时间并没有提高,因为我的main.a346bfb6bc1d7f56862f.js
仍然超过800kb。(它实际上变大了一点。)作为实验,我试着在app.routing.ts
中注释每个路由,并尽可能减少app.module.ts
,但主.js文件仍有大约800kb。我肯定还遗漏了一些东西……我不确定你的应用程序场景,但你应该将应用程序的所有页面、组件分离到相应的模块中。示例:您的第一个页面是登录页面,因此您只需为login
加载模块即可。它需要几kb。而1.b06a3b4d3470560595fb.js
它被称为chunk,在正常的应用程序中,我们有大约60个chunk,而在大型应用程序中,我们的chunk比它多。应该模块化我们的应用程序。