From 04b46540fb9fe7c0508f775a9fdb97a2aa6a43fa Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Sun, 11 Jun 2023 17:13:44 +0200 Subject: [PATCH] Fix minimized web_ui build stripping class names The data class pattern used for request and event payloads require the class names to be preserved as they are used for identifying the type of the requests and events. --- packages/web_ui/package.json | 1 + packages/web_ui/webpack.common.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/web_ui/package.json b/packages/web_ui/package.json index c9bc0499..b8b815c9 100644 --- a/packages/web_ui/package.json +++ b/packages/web_ui/package.json @@ -37,6 +37,7 @@ "react-router-dom": "^5.2.0", "stream-browserify": "^3.0.0", "style-loader": "^2.0.0", + "terser-webpack-plugin": "^5.3.9", "util": "^0.12.3", "webpack": "^5.73.0", "webpack-cli": "^4.9.2", diff --git a/packages/web_ui/webpack.common.js b/packages/web_ui/webpack.common.js index 628eb217..ebaab0ea 100644 --- a/packages/web_ui/webpack.common.js +++ b/packages/web_ui/webpack.common.js @@ -2,6 +2,7 @@ const webpack = require("webpack"); const { CleanWebpackPlugin } = require("clean-webpack-plugin"); const { WebpackManifestPlugin } = require("webpack-manifest-plugin"); +const TerserPlugin = require("terser-webpack-plugin"); module.exports = (env = {}) => ({ mode: env.production ? "production" : "development", @@ -113,5 +114,18 @@ module.exports = (env = {}) => ({ }, optimization: { moduleIds: "deterministic", + minimizer: [ + new TerserPlugin({ + terserOptions: { + compress: { + keep_classnames: true, + passes: 2, + }, + mangle: { + keep_classnames: true, + }, + }, + }), + ], }, });