Webpack 4 universal library target
According to the docs include output.globalObject
into webpack.config.js:
module.exports = {
output: {
libraryTarget: 'umd',
globalObject: 'this'
}
}
To make UMD build available on both browsers and Node.js, set output.globalObject option to 'this'.
This would be a bug in Webpack 4.
Webpack 3 produces a proper bundle.
This issue should be fixed with this feature, until it's done the suggested workaround is using globalObject
:
output: {
path: resolve(__dirname, 'umd'),
filename: 'lib.js',
libraryTarget: 'umd',
library: 'lib',
umdNamedDefine: true,
globalObject: `(typeof self !== 'undefined' ? self : this)`
},