Beginning with esbuild-loader 3 it uses iife for web bundles to avoid pollution of the "window" object. However, this broke our prod bundle because some variables should go into the global namespace. See https://github.com/esbuild-kit/esbuild-loader/releases/tag/v3.0.0 Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const common = require('./webpack.common.js')
 | |
| const htmlexport = require('./webpack.htmlexport')
 | |
| const { merge } = require('webpack-merge')
 | |
| const path = require('path')
 | |
| const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
 | |
| const { EsbuildPlugin } = require('esbuild-loader')
 | |
| 
 | |
| module.exports = [
 | |
|   merge(common, {
 | |
|     mode: 'production',
 | |
|     output: {
 | |
|       path: path.join(__dirname, 'public/build'),
 | |
|       publicPath: 'build/',
 | |
|       filename: '[name].[contenthash].js'
 | |
|     },
 | |
|     optimization: {
 | |
|       minimizer: [
 | |
|         new EsbuildPlugin({
 | |
|           target: 'es2015',
 | |
|           format: "cjs",
 | |
|           exclude: ['MathJax/extensions/a11y/mathmaps']
 | |
|         })
 | |
|       ],
 | |
|       splitChunks: {
 | |
|         chunks: 'all'
 | |
|       }
 | |
|     },
 | |
|     devtool: 'source-map'
 | |
|   }),
 | |
|   merge(htmlexport, {
 | |
|     mode: 'production',
 | |
|     optimization: {
 | |
|       minimizer: [
 | |
|         new EsbuildPlugin({
 | |
|           target: 'es2015',
 | |
|           format: "cjs"
 | |
|         }),
 | |
|         new OptimizeCSSAssetsPlugin({})
 | |
|       ]
 | |
|     }
 | |
|   })]
 |