VueCliで作ったサイトのwebpackでbundleされたJsを可視化してJsのサイズを減らそうとします
VueCliで作ったサイトのwebpackを可視化してJavascriptのサイズを減らそうとする
webpackのbundle後のJavaScriptのサイズを減らしている話という記事を見て、VueCliで作られたものはどうやって可視化するんだろうと思って調べました。
最終的なやり方は下記です。
stats-webpack-plugin
まずはmoduleのインストールを行いましょう
npm install --save-dev stats-webpack-plugin
続いて、vue.config.jsファイルを次のように変更します。
const StatsPlugin = require('stats-webpack-plugin');
module.exports = {
configureWebpack:{
plugins: [new StatsPlugin("stats.json", {
chunkModules: true,
chunks: true,
assets: false,
modules: true,
children: true,
chunksSort: true,
assetsSort: true
})],
},
}
webpack-bundle-analyzer
続いてwebpack-bundle-analyzerをインストールしましょう
npm install webpack-bundle-analyzer --save-dev
vue.config.jsの内容にwebpack-bundle-analyzerを使うぞと追記を行います
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
module.exports = {
chainWebpack: (config) => {
config.plugin("webpack-bundle-analyzer")
.use(BundleAnalyzerPlugin)
.init(Plugin => new Plugin());
},
};
最終的なvue.config.jsはこのようになります
const StatsPlugin = require('stats-webpack-plugin');
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
module.exports = {
configureWebpack:{
plugins: [new StatsPlugin("stats.json", {
chunkModules: true,
chunks: true,
assets: false,
modules: true,
children: true,
chunksSort: true,
assetsSort: true
})],
},
chainWebpack: (config) => {
config.plugin("webpack-bundle-analyzer")
.use(BundleAnalyzerPlugin)
.init(Plugin => new Plugin());
},
}
最後に、package.jsonにコマンドを追記します。
"report": "vue-cli-service build --report-json"
お疲れさまでした
意外とかんたんでしたね!
npm run report
を走らせることで、 http://127.0.0.1:8888/こんな感じでかってにブラウザが立ち上がるかと思います。
おまけ
webpack-chartというサイトに、先程のコマンドで作られたstats.jsonを放り込むと、円グラフになってサイズを教えてくれます。
以上です。