diff --git a/applications/electron/webpack.config.js b/applications/electron/webpack.config.js index 98b34bf..0a8343c 100644 --- a/applications/electron/webpack.config.js +++ b/applications/electron/webpack.config.js @@ -5,6 +5,7 @@ // @ts-check const configs = require('./gen-webpack.config.js'); const nodeConfig = require('./gen-webpack.node.config.js'); +const TerserPlugin = require('terser-webpack-plugin'); /** * Expose bundled modules on window.theia.moduleName namespace, e.g. @@ -15,6 +16,29 @@ configs[0].module.rules.push({ loader: require.resolve('@theia/application-manager/lib/expose-loader') }); */ +/** + * Do no run TerserPlugin with parallel: true + * Each spawned node may take the full memory configured via NODE_OPTIONS / --max_old_space_size + * In total this may lead to OOM issues + */ +if (nodeConfig.config.optimization) { + nodeConfig.config.optimization.minimizer = [ + new TerserPlugin({ + parallel: false, + exclude: /^(lib|builtins)\// + }) + ]; +} +for (const config of configs) { + config.optimization = { + minimizer: [ + new TerserPlugin({ + parallel: false + }) + ] + }; +} + module.exports = [ ...configs, nodeConfig.config