打包时间文件

如果希望看到每个 Loder 、每个 Plugin 消耗的打包时间,可以借助一个插件:speed-measure-webpack-plugin

安装插件:

  1. npm i speed-measure-webpack-plugin -D
  1. 修改 webpack 配置:
// webpack.config.js
const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');

const smp = new SpeedMeasurePlugin();

// 使用 wrap 包裹导出的配置
module.exports = smp.wrap({
    // ..
});
执行打包命令后就可以在命令行中看到以下效果:<br />![](https://cdn.nlark.com/yuque/0/2021/png/1561260/1618712649235-be1eaf90-4091-4675-8ac3-51021c32ba68.png#clientId=u00a176f8-b2d0-4&from=paste&height=282&id=uf77676c1&margin=%5Bobject%20Object%5D&originHeight=564&originWidth=869&originalType=binary&size=60632&status=done&style=stroke&taskId=uf771eb4c-c2b6-4ae3-85b5-c4f5fe89ff9&width=434.5)

打包文件分析

方案一:
生成一个 stats.json 文件,然后通过 https://webpack.github.com/analyse 分析打包后文件的内容。

首先需要在 package.json 中添加一个 scripts 命令,在命令中添加 --profile --json=stats.json

"scripts": {
    "stats": "webpack --profile --json=stats.json"
}

然后打开上面的网站,在网站中选择这个 stats.json 文件。

方案二:
使用一个工具来完成 webpack-bundle-analyzer

npm i webpack-bundle-analyzer -D
    修改 webpack 配置:
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer')

module.exports = {
    plugins: [
      new BundleAnalyzerPlugin(),
  ]
}
运行打包命令后这个插件会自动打开 8888 端口,显示如下信息:<br />![](https://cdn.nlark.com/yuque/0/2021/png/1561260/1618713345958-ae265dfc-7beb-4164-839f-a32f04bba3bd.png#clientId=u00a176f8-b2d0-4&from=paste&height=472&id=uad98c4ce&margin=%5Bobject%20Object%5D&originHeight=943&originWidth=1920&originalType=binary&size=140749&status=done&style=none&taskId=u6f8199f6-ac85-499c-8bc5-50dca2736f5&width=960)