Appearance
webpack 分析工具
stats
js
// webpack.config.js
module.exports = {
// ...
profile: true,
};// webpack.config.js
module.exports = {
// ...
profile: true,
};js
npx webpack --json=stats.jsonnpx webpack --json=stats.json或通过事件done来生成
js
function(compiler) {
compiler.hooks.done.tap('json', (stats) => {
require('fs').writeFileSync('./stats.json', JSON.stringify(stats.toJson(), null, 2))
})
}function(compiler) {
compiler.hooks.done.tap('json', (stats) => {
require('fs').writeFileSync('./stats.json', JSON.stringify(stats.toJson(), null, 2))
})
}最终生成stats.json文件,可以在webpack analyse 查看
statoscope
js
yarn add -D @statoscope/webpack-pluginyarn add -D @statoscope/webpack-pluginjs
const StatoscopeWebpackPlugin = require('@statoscope/webpack-plugin').default;
module.exports = {
...
plugins: [new StatoscopeWebpackPlugin()],
};const StatoscopeWebpackPlugin = require('@statoscope/webpack-plugin').default;
module.exports = {
...
plugins: [new StatoscopeWebpackPlugin()],
};Webpack Bundle Analyzer
js
yarn add -D webpack-bundle-analyzeryarn add -D webpack-bundle-analyzerjs
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer")
.BundleAnalyzerPlugin;
module.exports = {
...
plugins: [new BundleAnalyzerPlugin()],
};const BundleAnalyzerPlugin = require("webpack-bundle-analyzer")
.BundleAnalyzerPlugin;
module.exports = {
...
plugins: [new BundleAnalyzerPlugin()],
};Webpack Dashboard
webpack-dashboard 是一个命令行可视化工具,能够在编译过程中实时展示编译进度、模块分布、产物信息等,用法:
js
yarn add -D webpack-dashboardyarn add -D webpack-dashboardjs
const DashboardPlugin = require("webpack-dashboard/plugin");
module.exports = {
// ...
plugins: [new DashboardPlugin()],
};const DashboardPlugin = require("webpack-dashboard/plugin");
module.exports = {
// ...
plugins: [new DashboardPlugin()],
};shell
# 打包
npx webpack-dashboard -- webpack
# Dev Server
npx webpack-dashboard -- webpack-dev-server
# 运行 Node 程序
npx webpack-dashboard -- node index.js# 打包
npx webpack-dashboard -- webpack
# Dev Server
npx webpack-dashboard -- webpack-dev-server
# 运行 Node 程序
npx webpack-dashboard -- node index.jsUnusedWebpackPlugin
查找未使用的文件
js
const UnusedWebpackPlugin = require("unused-webpack-plugin");
module.exports = {
// ...
plugins: [
new UnusedWebpackPlugin({
directories: [path.join(__dirname, "src")],
root: path.join(__dirname, "../"),
}),
],
};const UnusedWebpackPlugin = require("unused-webpack-plugin");
module.exports = {
// ...
plugins: [
new UnusedWebpackPlugin({
directories: [path.join(__dirname, "src")],
root: path.join(__dirname, "../"),
}),
],
};