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({})
 | 
						|
      ]
 | 
						|
    }
 | 
						|
  })]
 |