diff --git a/scm-ui/ui-scripts/package.json b/scm-ui/ui-scripts/package.json
index d647427a1a..7ef5d2819c 100644
--- a/scm-ui/ui-scripts/package.json
+++ b/scm-ui/ui-scripts/package.json
@@ -14,8 +14,10 @@
"cache-loader": "^4.1.0",
"css-loader": "^3.2.0",
"file-loader": "^4.2.0",
+ "mini-css-extract-plugin": "^0.8.0",
"mustache": "^3.1.0",
"node-sass": "^4.12.0",
+ "optimize-css-assets-webpack-plugin": "^5.0.3",
"sass-loader": "^8.0.0",
"script-loader": "^0.7.2",
"style-loader": "^1.0.0",
diff --git a/scm-ui/ui-scripts/src/webpack.config.js b/scm-ui/ui-scripts/src/webpack.config.js
index c4cf6d609b..639872c6b8 100644
--- a/scm-ui/ui-scripts/src/webpack.config.js
+++ b/scm-ui/ui-scripts/src/webpack.config.js
@@ -1,19 +1,52 @@
const path = require("path");
const createIndexMiddleware = require("./middleware/IndexMiddleware");
const createContextPathMiddleware = require("./middleware/ContextPathMiddleware");
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
const root = path.resolve(process.cwd(), "scm-ui");
module.exports = [
{
context: root,
- entry: {
- webapp: [
- path.resolve(__dirname, "webpack-public-path.js"),
- "./ui-styles/src/scm.scss",
- "./ui-webapp/src/index.tsx"
+ entry: "./ui-styles/src/scm.scss",
+ module: {
+ rules: [
+ {
+ test: /\.(css|scss|sass)$/i,
+ use: [
+ {
+ loader: MiniCssExtractPlugin.loader
+ },
+ "css-loader",
+ "sass-loader"
+ ]
+ },
+ {
+ test: /\.(png|svg|jpg|gif|woff2?|eot|ttf)$/,
+ use: ["file-loader"]
+ }
]
},
+ plugins: [
+ new MiniCssExtractPlugin({
+ filename: "ui-styles.css",
+ ignoreOrder: false
+ })
+ ],
+ optimization: {
+ minimizer: [new OptimizeCSSAssetsPlugin({})]
+ },
+ output: {
+ path: path.join(root, "target", "assets"),
+ filename: "ui-styles.bundle.js"
+ }
+ },
+ {
+ context: root,
+ entry: {
+ webapp: [path.resolve(__dirname, "webpack-public-path.js"), "./ui-webapp/src/index.tsx"]
+ },
devtool: "cheap-module-eval-source-map",
target: "web",
node: {
diff --git a/scm-ui/ui-webapp/public/index.mustache b/scm-ui/ui-webapp/public/index.mustache
index 64846128a1..d94bc552ee 100644
--- a/scm-ui/ui-webapp/public/index.mustache
+++ b/scm-ui/ui-webapp/public/index.mustache
@@ -14,6 +14,7 @@