webpack5 编译打包优化

2,603 阅读1分钟

1 webpack版本

webpack 的版本为 v5.37.0

2 优化手段

webpack5 的持久缓存以及代码分割

3 优化前后数据对比

持久缓存:「开发环境」编译速度数据对比

Node版本未优化耗时优化后首次编译耗时优化后二次编译耗时优化后三次编译耗时耗时降低(三次编译)
v14.16.118.8518.016(写入缓存)10.04210.8143%

image.png

持久缓存 + 未分割代码:「生产环境」构建速度数据对比

Node版本未优化耗时优化后首次编译耗时优化后二次编译耗时优化后三次编译耗时耗时降低(三次编译)
v14.16.133.0433.15(写入缓存)24.4325.7922%

持久缓存 + 分割代码:「生产环境」构建速度数据对比(联合使用更好)

Node版本未优化耗时优化后首次编译耗时优化后二次编译耗时优化后三次编译耗时耗时降低(三次编译)
v14.16.132.6533.68(写入缓存)13.5913.1260%

image.png

4 优化总结

  • 开发环境下,持久缓存能有效节省了编译的耗时,耗时降低了 43%。
  • 生产环境下,持久缓存与分割代码联合使用,更有效节省了编译的耗时,耗时降低了 60%。
  • 生产环境下,分割代码 gzip 包减少了 100k

5 主要代码

引入 webpack5 新属性持久缓存(开发和生产环境)

参考链接:webpack.docschina.org/blog/2020-1…

cache: {
    type: 'filesystem',
    buildDependencies: {
      config: [__filename]
    }
}

分割代码(生产环境)

optimization: {
    minimize: true,
    splitChunks: {
      chunks: 'all'
    }
}