Javascript 如何配置webpack以与严格模式兼容的方式注入全局对象?

Javascript 如何配置webpack以与严格模式兼容的方式注入全局对象?,javascript,socket.io,webpack,Javascript,Socket.io,Webpack,我的目标是将Socket.IO-Client与一些自定义脚本连接起来。问题是,在我的自定义脚本中,严格模式是全局启用的。Socket.IO客户端在严格模式下失败 原因是webpack注入了全局对象。为了演示这个问题,我创建了以下示例脚本app.js: global.dummy = true; 调用webpack./app.js app.bundle.js将创建一个包含以下行的输出: /* WEBPACK VAR INJECTION */(function(global) {global.dum

我的目标是将Socket.IO-Client与一些自定义脚本连接起来。问题是,在我的自定义脚本中,严格模式是全局启用的。Socket.IO客户端在严格模式下失败

原因是webpack注入了全局对象。为了演示这个问题,我创建了以下示例脚本app.js:

global.dummy = true;
调用
webpack./app.js app.bundle.js
将创建一个包含以下行的输出:

/* WEBPACK VAR INJECTION */(function(global) {global.dummy = true;
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
正如您所见,全局对象是使用
(function(){returnthis;}())
注入的。这在严格模式下不起作用。(
global
未定义且
global.dummy
引发异常。)

是否有任何选项可以更改Web包中的此注入行为

当我将注入代码
(function(){return this;}())
替换为
(function(){return window;}())
时,脚本可以工作。我想在网页包中配置这个

我的尝试:

我创建了一个webpack配置文件,并将
target
设置为所有可能的值。没有成功

Socket.IO-client中的网页包配置包含以下内容:

externals: {
  global: glob()
},
...
function glob () {
  return 'typeof self !== "undefined" ? self : ' +
    'typeof window !== "undefined" ? window : ' +
    'typeof global !== "undefined" ? global : {}';
}

将其添加到我的网页配置文件中根本不会改变输出。

我也有同样的问题。我正在尝试导入一个使用Webpack构建的库,但是由于使用严格,传入的全局函数是
未定义的
@MattZeunert。您解决了问题吗?