第一步:多模块懒加载
查找官网
字符串形式LoadChildren
已弃用(请参阅参考资料DeprecatedLoadChildren
)。LoadChildrenCallback
应改用函数形式()。
使用 LoadChildrenCallback应改用函数形式()
loadChildren: () => import('./lazy-route/lazy.module').then(mod => mod.LazyModule),
加入后报错
仅当 "--module" 标志为 "commonjs" 或 "esNext" 时,才支持动态导入。ts(1323)
"module": "esnext"
还是报错
升级过程中操作不得当,完全崩溃,重装系统, 重装环境,修改OK
修改测试后发现main.js还是有2M左右,看官网的demo也是2M左右
第二步:vendor.js
通过增加编译参数:--prod –aot
编译后发现,竟然报了一堆错误。不过不要惊慌,那是优化编译时对ts语法检查比较严谨,我们代码中很多地方写的不够严谨,只能硬着头皮一行行修改了,此外别无它法。
修改NPM脚本
发现编译脚本 自带--prod 增加--aot 之后,再编译,发现还是2M左右
想到一个方法,使用OSS对象存储
在NPM脚本后面加上 --deploy-url http://cdn.xxx.xxx/xx/xx
直接接入OSS网址,
服务器上的wwwroot只放assets文件夹和LOGO文件和index.html,其它文件放在OSS上
运行起来 main.js只有400K,具体怎么回事没试,但是速度已经到了1S内了
第三步:服务端开启gizp压缩
本人IIS11,发现 压缩默认开启