利用 import()函数将体积较大、不是每个页面都用的模块分割出去,例如 import('echarts')
使用 moment 库时,注意将语言包分出去,利用 webpack.IgnorePlugin:
new webpack.IgnorePlugin(/\.\/locale/, /moment/)
// 再导入中文包
import 'moment/locale/zh-cn'
// 错误
import useInterval from 'react-use'
// 正确
import useInterval from 'react-use/lib/useInterval'
其实我每次写聚合导出的时候就感觉会影响代码分割:
// c.ts
export * from './a'
export * from './b'
// d.ts
import { a } from './c'
这样即使 d 没有用到 b,由于聚合导出导致把 b 也打包进来了。
聚合导出的优点可能就是减少文件顶部一大堆的 import 语句。不过 node 服务端不打包的话聚合导出影响应该不大。