hedgedoc/webpack.prod.js
Tilman Vatteroth 5552be1412 fix(bundle): force esbuild-loader to use cjs instead of iife
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>
2023-02-17 19:40:35 +01:00

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