【问题标题】:Webpack import window module to a namespaceWebpack 将窗口模块导入命名空间
【发布时间】:2016-12-20 15:38:58
【问题描述】:

我正在使用 2 个模块,它们使用“window.ModuleName”来导出它们自己。它们都使用相同的 ModuleName。

window.z = a;

window.z = b

第一个模块a 是独立模块,因为我在需要时通过$.getScript 导入它。

第二个模块b是通过webpack打包的。

模块awindow.z在加载时覆盖模块bwindow.z。因此,我想更改模块b 的范围,将其分配给带有webpack 的变量或命名空间,而不是通过webpack 或任何其他可能性的窗口范围。

newScope.z = a

这两个模块都不是我定义的,因此我无法更改导出。 有什么专业的方法可以做到这一点?

【问题讨论】:

标签: javascript webpack ecmascript-6


【解决方案1】:

创建一个 startup.js 文件(在您需要 a 或 b 之前包含/需要),您可以在其中执行此操作:

require('a')
var z1 = window.z
window.z1 = z1
require('b')

现在 window.z1 是 a.z,window.z 是 b.z,你有他们两个

【讨论】:

    【解决方案2】:

    我只能通过使用 webpack 中的字符串替换加载器并从 window.z => window.zb 替换模块 b 的导出来解决这个问题。

    不幸的是,似乎不可能将变量的范围从窗口全局对象更改为本地对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 2019-03-14
      • 2021-03-20
      • 2019-01-08
      • 2017-12-20
      相关资源
      最近更新 更多