「Failed to minify the bundle」エラーの解決

通常、ジョブの実行中にメモリ不足が発生すると、以下のエラー メッセージが表示されます。

Failed to minify the bundle. Error: static/js/12.fb78ba11.chunk.js from TerserError: Call retries were exceeded

Webpack4ではデフォルでterser-webpack-pluginを利用しJavaScriptを圧縮するようになりました。 terser-webpack-pluginのデフォルトのparallelオプションはCPU数(os.cpus().length - 1)がセットされます。 それは実際のVMのCPU数が参照され、Docker executorが持つCPU数より大きいCPU数が設定されます。 そのためWebpackはvCPUよりも多くの数のワーカーを作成し、それが原因でこのエラーが発生します。


これを回避するには、parallelオプションにvCPU数と同じ数を指定する必要があります。 以下は例になります。

const TerserPlugin = require('terser-webpack-plugin');module.exports = {  optimization: {    minimizer: [      new TerserPlugin({        parallel: 2,      }),    ],  }};

設定の詳細は以下のリンクを参照ください。

https://webpack.js.org/configuration/optimization/#optimizationminimizer
https://webpack.js.org/plugins/terser-webpack-plugin/#parallel

 

上記で問題が解決しない場合、以下の方法をお試しください。

メモリの使用量に関する問題を詳細に把握するには、ジョブのメモリの最大使用量をログに記録することを検討してください。

この記事は役に立ちましたか?
3人中2人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。