]> BookStack Code Mirror - bookstack/blobdiff - webpack.config.js
Update maintenance.php
[bookstack] / webpack.config.js
index 0f54147a0fb0f69c5a9e7c568e15ca7da4f9e14e..4eae9b9be34683eec0f4efd08f039762e556c6ac 100644 (file)
@@ -2,14 +2,11 @@ const path = require('path');
 const dev = process.env.NODE_ENV !== 'production';
 
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
-const ExtractTextPlugin = require("extract-text-webpack-plugin");
-
-const extractSass = new ExtractTextPlugin({
-    filename: "[name].css"
-    // disable: process.env.NODE_ENV === "development"
-});
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
 
 const config = {
+    target: 'web',
+    mode: dev? 'development' : 'production',
     entry: {
         app: './resources/assets/js/index.js',
         styles: './resources/assets/sass/styles.scss',
@@ -28,29 +25,48 @@ const config = {
                 use: {
                     loader: 'babel-loader',
                     options: {
-                        presets: ['@babel/preset-env']
+                        presets: [[
+                            '@babel/preset-env', {
+                                useBuiltIns: 'usage'
+                            }
+                        ]]
                     }
                 }
             },
             {
                 test: /\.scss$/,
-                use: extractSass.extract({
-                    use: [{
+                use: [
+                    {
+                        loader: MiniCssExtractPlugin.loader,
+                        options: {}
+                    },
+                    {
                         loader: "css-loader", options: {
-                            sourceMap: dev
+                        sourceMap: dev
+                    }
+                    }, {
+                        loader: 'postcss-loader',
+                        options: {
+                            ident: 'postcss',
+                            sourceMap: dev,
+                            plugins: (loader) => [
+                                require('autoprefixer')(),
+                            ]
                         }
                     }, {
                         loader: "sass-loader", options: {
                             sourceMap: dev
                         }
-                    }],
-                    // use style-loader in development
-                    fallback: "style-loader"
-                })
+                    }
+                ]
             }
         ]
     },
-    plugins: [extractSass]
+    plugins: [
+        new MiniCssExtractPlugin({
+            filename: "[name].css",
+        }),
+    ]
 };
 
 if (dev) {