Angular之性能优化

Posted by Shen Chaoran on March 17, 2018

JIT & AOT

模板编译的时机不同,一个在浏览器端,一个在服务器端

首次加载时间

  • JIT: 9.13s
  • hmr: 1s. 部分资源重新加载,适合开发环境
  • AOT: 2.34s
  • prod: 1.41s. –prod automatically turns on –aot

ng-cli 选项

build 编译选项:

  • –vendor-chunk: 输出 vendor 文件(保存angular和第三方库源码),否则会将 vendor 和 main 文件合并
  • –aot
  • –prod

serve 选项

  • –prod: 打包文件小,但是 hmr 模式下打包速度非常慢,代码检查也更严格
  • –aot: 和 –prod 的特点相同,但是没有 –prod 语法严格,大小也稍微大点
  • JIT 模式,默认的解析模式,特点是加载速度慢,因为浏览器端解析
  • –common-chunk: 比如 ABC 三个模块都依赖一个 D 模块,将 D 模块单独打包到一个 chunk,加载 ABC 三个模块时只加载一遍 D,如果在缓存中存在了 D,就不用再重新加载了。

输出文件结构:

  • inline.bundle.js 这是webpack的运行时.
  • main.bundle.js 就是程序代码.
  • pollyfills.bundle.js 就是浏览器的Pollyfills.
  • styles.bundle.js 样式
  • vendor.bundle.js 是angular和第三方库