diff --git a/platform/viewer/.webpack/webpack.pwa.js b/platform/viewer/.webpack/webpack.pwa.js index a72083d1c..d74f6b0cc 100644 --- a/platform/viewer/.webpack/webpack.pwa.js +++ b/platform/viewer/.webpack/webpack.pwa.js @@ -25,11 +25,13 @@ const PUBLIC_URL = process.env.PUBLIC_URL || '/'; const APP_CONFIG = process.env.APP_CONFIG || 'config/default.js'; const PROXY_TARGET = process.env.PROXY_TARGET; const PROXY_DOMAIN = process.env.PROXY_DOMAIN; +const SKIP_MINIMIZE = process.env.SKIP_MINIMIZE; module.exports = (env, argv) => { const baseConfig = webpackBase(env, argv, { SRC_DIR, DIST_DIR }); const isProdBuild = process.env.NODE_ENV === 'production'; const hasProxy = PROXY_TARGET && PROXY_DOMAIN; + const skipMinimize = SKIP_MINIMIZE === 'true'; const mergedConfig = merge(baseConfig, { devtool: isProdBuild ? 'source-map' : 'cheap-module-eval-source-map', @@ -50,7 +52,7 @@ module.exports = (env, argv) => { warnings: true, }, optimization: { - minimize: isProdBuild, + minimize: isProdBuild && !skipMinimize, sideEffects: true, }, module: { @@ -85,8 +87,8 @@ module.exports = (env, argv) => { ]), // https://github.com/faceyspacey/extract-css-chunks-webpack-plugin#webpack-4-standalone-installation new ExtractCssChunksPlugin({ - filename: '[name].css', - chunkFilename: '[id].css', + filename: isProdBuild ? '[name].[hash].css' : '[name].css', + chunkFilename: isProdBuild ? '[id].[hash].css' : '[id].css', ignoreOrder: false, // Enable to remove warnings about conflicting order }), // Generate "index.html" w/ correct includes/imports @@ -129,14 +131,14 @@ module.exports = (env, argv) => { if (!isProdBuild) { mergedConfig.plugins.push(new webpack.HotModuleReplacementPlugin()); - - // + } else { mergedConfig.optimization.minimizer = [ new TerserJSPlugin({ sourceMap: true, parallel: true, }), - new OptimizeCSSAssetsPlugin({}), + // No bueno + // new OptimizeCSSAssetsPlugin({}), ]; } diff --git a/platform/viewer/package.json b/platform/viewer/package.json index 0bd18b1f9..f559191d4 100644 --- a/platform/viewer/package.json +++ b/platform/viewer/package.json @@ -20,8 +20,8 @@ "build:package": "cross-env NODE_ENV=production node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.commonjs.js", "build:viewer": "cross-env NODE_ENV=production node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.pwa.js --progress", "build:viewer:e2e": "cross-env NODE_ENV=development node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.pwa.js --progress", - "build:viewer:ci": "cross-env NODE_ENV=production PUBLIC_URL=/pwa/ APP_CONFIG=config/netlify.js node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.pwa.js", - "build:viewer:demo": "cross-env NODE_ENV=production APP_CONFIG=config/demo.js HTML_TEMPLATE=rollbar.html node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --progress --config .webpack/webpack.pwa.js", + "build:viewer:ci": "cross-env NODE_ENV=production PUBLIC_URL=/pwa/ APP_CONFIG=config/netlify.js SKIP_MINIMIZE=true node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.pwa.js", + "build:viewer:demo": "cross-env NODE_ENV=production APP_CONFIG=config/demo.js HTML_TEMPLATE=rollbar.html SKIP_MINIMIZE=true node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --progress --config .webpack/webpack.pwa.js", "build:viewer:package": "yarn run build:package", "dev": "cross-env NODE_ENV=development webpack-dev-server --config .webpack/webpack.pwa.js --watch", "dev:orthanc": "cross-env NODE_ENV=development PROXY_TARGET=/dicom-web PROXY_DOMAIN=http://localhost:8042 APP_CONFIG=config/docker_nginx-orthanc.js webpack-dev-server --config .webpack/webpack.pwa.js --watch",