Webpackでビルド時に生成されるファイルを300kb以下に抑えたいという要望があったので調査
環境
- react
17.0.1
- webpack
4.44.2
- terser-webpack-plugin
4.2.3
設定
以下のパラメータ設定をしたところ、ファイル数とファイルサイズが要望通りに収まった
minSize: 100000,
maxSize: 300000,
maxInitialRequests: 10,
{
optimization: {
splitChunks: {
chunks: 'initial',
minSize: 100000,
maxSize: 300000,
maxInitialRequests: 10,
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
reuseExistingChunk: true,
name(module,chunks,cacheGroupKey) {
const allChunksHashes = chunks.map((item)=>item.hash).join('~');
return `${cacheGroupKey}${allChunksHashes}`
}
},
},
},
},
}
ファイルは以下のようなファイル名で出力された。
main~ハッシュ値1.chunk.js
main~ハッシュ値1.chunk.js.map
main~ハッシュ値2.chunk.js
main~ハッシュ値2.chunk.js.map
runtime-main.ハッシュ値.js
runtime-main.ハッシュ値.js.map
vendor~ハッシュ値1.js
vendor~ハッシュ値1.js.map
vendor~ハッシュ値2.js
vendor~ハッシュ値2.js.map