windows/global 对象库不适用于 webpack5

windows/global object library don't work with webpack5

我编写了将 Class 添加到全局 window 对象的库:

const Maplat = window.Maplat = {};

Maplat.createObject = blah blah..

通过 webpack4 编译,效果很好。

<html>
  <head>
    <script src="./assets/maplat_core.js"></script>
  </head>
  <body>
    <script>
      Maplat.createObject(...);
      // Works fine
    </script>
  </body>
</html>

但是我更新了 webpack 5 之后,这个就不行了

我查看了编译结果代码,编译为:

          ...
          , Tv = window.Maplat = {};
        Tv.createObject = function(t) {
            return new Promise((function(e) {
                var n = new Rv(t);
                n.waitReady.then((function() {
                    e(n)
                }
                ))
            }
            ))
        }
    }
    )()
}
)();

有了这个编译结果,

const Maplat = window.Maplat = {};

之后工作
Maplat.createObject(...);

所以这个编译结果不成立

如何解决? 如何通过 webpack5 添加 class 到 window/global 对象?

最后它可以使用这个 webpack 设置:

  output: {
    path: path.resolve(__dirname, "../dev"),
    filename: '[name].js',
    libraryTarget: 'umd',
    globalObject: 'this',
  },