mirror of
				https://github.com/KevinMidboe/planetposen.git
				synced 2025-10-29 17:50:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| const { CleanWebpackPlugin } = require("clean-webpack-plugin");
 | |
| const webpack = require("webpack");
 | |
| const merge = require("webpack-merge");
 | |
| const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
 | |
| const MiniCSSExtractPlugin = require("mini-css-extract-plugin");
 | |
| const UglifyJSPlugin = require("uglifyjs-webpack-plugin");
 | |
| const helpers = require("./helpers");
 | |
| const commonConfig = require("./webpack.config.common");
 | |
| const isProd = process.env.NODE_ENV === "production";
 | |
| const environment = isProd
 | |
|   ? require("./env/prod.env")
 | |
|   : require("./env/staging.env");
 | |
| 
 | |
| const webpackConfig = merge(commonConfig(false), {
 | |
|   mode: "production",
 | |
|   output: {
 | |
|     path: helpers.root("public/dist"),
 | |
|     publicPath: "/dist/",
 | |
|     filename: "js/[name].bundle.[hash:7].js"
 | |
|     //filename: 'js/[name].bundle.js'
 | |
|   },
 | |
|   optimization: {
 | |
|     splitChunks: {
 | |
|       cacheGroups: {
 | |
|         styles: {
 | |
|           name: "styles",
 | |
|           test: /\.css$/,
 | |
|           chunks: "all",
 | |
|           enforce: true
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     minimizer: [
 | |
|       new OptimizeCSSAssetsPlugin({
 | |
|         cssProcessorPluginOptions: {
 | |
|           preset: ["default", { discardComments: { removeAll: true } }]
 | |
|         }
 | |
|       }),
 | |
| //      new UglifyJSPlugin({
 | |
| //        cache: true,
 | |
| //        parallel: false,
 | |
| //        sourceMap: !isProd
 | |
| //      })
 | |
|     ]
 | |
|   },
 | |
|   plugins: [
 | |
|     new CleanWebpackPlugin(),
 | |
|     new webpack.EnvironmentPlugin(environment),
 | |
|     new MiniCSSExtractPlugin({
 | |
|       filename: "css/[name].[hash:7].css"
 | |
|     })
 | |
|   ]
 | |
| });
 | |
| 
 | |
| if (!isProd) {
 | |
|   webpackConfig.devtool = "source-map";
 | |
| 
 | |
|   if (process.env.npm_config_report) {
 | |
|     const BundleAnalyzerPlugin = require("webpack-bundle-analyzer")
 | |
|       .BundleAnalyzerPlugin;
 | |
|     webpackConfig.plugins.push(new BundleAnalyzerPlugin());
 | |
|   }
 | |
| }
 | |
| 
 | |
| module.exports = webpackConfig;
 |