Согласно документации Webpack 4, если я укажу libraryTarget: 'umd', это должно привести к следующему результату:
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["MyLibrary"] = factory();
else
root["MyLibrary"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return _entry_return_;
});
Однако я получаю:
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("lib", [], factory);
else if(typeof exports === 'object')
exports["lib"] = factory();
else
root["lib"] = factory();
})(window, function() {
return
Точнее, вместо этого (typeof self !== 'undefined'? self: this, function()
Я получаю это: (window, function()
Это (очевидно) приводит к тому, что window is undefined
ошибки времени выполнения window is undefined
при импорте в среде узла.
Чтобы быть ясным:
Я знаю, что window
не существует в узловых приложениях. Мой вопрос не в этом, а скорее о webpack.
Это ошибка, или я чего-то не хватает?
Моя конфигурация вывода:
output: {
path: resolve(__dirname, 'umd'),
filename: 'lib.js',
libraryTarget: 'umd',
library: 'lib',
umdNamedDefine: true,
},