webpack的检测工具

  1. 各个插件和loader执行速度的检测: https://www.npmjs.com/package/speed-measure-webpack-plugin (连接)

2021.3.17日更新:此插件不适用于webpack5以上, 替代方案可以用progress-bar-webpack-plugin(监控打包时间)

  1. // npm i -D speed-measure-webpack-plugin
  2. const SpeedMeasureWebpackPlugin = require('speed-measure-webpack-plugin')
  3. const SpeedMeasure = new SpeedMeasureWebpackPlugin() // 拿到各loader执行速度
  4. module.exports = SpeedMeasure.wrap({
  5. entry: '...',
  6. output: '...',
  7. ...
  8. })

webpack的检测工具 - 图1

  1. 监控资源体积变化(与上一次相比): https://www.npmjs.com/package/size-plugin
  1. // npm i -D size-plugin
  2. // webpack.config.js
  3. + const SizePlugin = require('size-plugin');
  4. module.exports = {
  5. plugins: [
  6. + new SizePlugin()
  7. ]
  8. }

webpack的检测工具 - 图2

  1. 获取打包后,各个资源大小占比情况:https://www.npmjs.com/package/webpack-bundle-analyzer
    1. 可以很轻易的找出一些过大的包,比如loadsh,然后在考虑是否有替代方案或者code splitting
    2. 个人经历
      • 内部公共组件库内 的一个公共组件加了brace(功能是做一个在线代码编辑器),结果包含了各种语言,总的加起来有8M。解决方法:只引入业务需要的部分,比如sql,js等
  1. // npm install -D webpack-bundle-analyzer
  2. const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
  3. module.exports = {
  4. plugins: [
  5. new BundleAnalyzerPlugin()
  6. ]
  7. }

webpack的检测工具 - 图3