Webpack将窗口模块导入命名空间

时间:2016-12-20 15:38:59

标签: javascript webpack ecmascript-6

我正在使用2个模块,它们正在使用" window.ModuleName"出口自己。它们都使用相同的ModuleName。

window.z = a;

window.z = b

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

第二个模块b通过webpack捆绑在一起。

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

newScope.z = a

这两个模块都没有我定义,因此,我无法更改导出。 有什么办法专业吗?

2 个答案:

答案 0 :(得分:0)

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

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

现在window.z1是a.z,window.z是b.z,哟他们俩都是

答案 1 :(得分:0)

我只能通过在webpack中使用字符串替换加载器来解决这个问题,并从python -m pip install numpy 替换模块b的导出。

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