24_webpack_打包分析

一、打包时间的分析

如果我们希望看到每一个loader和plugin消耗的打包时间,可以借助于一个插件:speed-measure-webpakc-plugin

安装:npm i speed-measure-webpack-plugin -D

使用:

// 测量打包时间的插件
const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");
const smp = new SpeedMeasurePlugin();


module.exports = function (env) {
  isProduction = env.production;
  process.env.NODE_ENV = isProduction ? "production" : "development";
  return smp.wrap(
    isProduction
      ? merge(commonConfig, prodConfig)
      : merge(commonConfig, devConfig)
  );
};

这个插件是有兼容性问题的

如 mini-css-extract-webpack-plugin

怎么解决这个问题?npm i mini-css-extract-webpack-plugin@1.3.6

那么再次npm run build 的时候就可以看到每个插件、loader耗时是多少

 

二、打包后文件分析

在package.json中的scripts中加入一个脚本
"stats":"webpack --config ./config/webpack.common.js --env production --profile --json=stats"

将打包后的文件生成一个档案,以json格式生成,名字叫stats

通过指向npm run stats可以得到一个stats.json的文件
但是单单阅读这个文件其中的信息并不是显而易见

可以放到:http://webpack.github.io/analyse,进行分析

 

或者使用webpack-bundle-analyzer

npm i webpack-bundle-analyzer -D

// 打包大小分析的插件
const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer");

plugins:[
new BundleAnalyzerPlugin()
]

当你npm run build 的时候,它会自动打开一个本地服务

posted @ 2022-06-01 23:07  Mr-Hou88888  阅读(179)  评论(0编辑  收藏  举报