我有一个旧的JS应用程序,我需要实现一些新功能。 一些旧模块已实现如下:
(function() {
...
this.MyModule = MyModule;
}).call(this);
这很好用。 现在我必须实现其他模块,我想使用react做到这一点。我更新了我的webpack配置,并将'es2015'添加到babel加载器的预设中:
{
test: /(\.js|\.jsx)$/,
exclude: /(node_modules)/,
loader: 'babel',
query: {
presets: ['react', 'es2015']
}
}
现在我的原始模块不再加载了。 现在,当我在浏览器中运行代码时出现以下错误:
MyModule.js:185 Uncaught TypeError: Cannot set property 'MyModule' of undefined
这段代码:
this.MyModule = MyModule;
这看起来好像在Javscript中,这不再是窗口了吗? 这可能是真的吗?
如果删除“es2015”预设,一切似乎都很好。
有人可以给我一个提示吗?
谢谢, 杰拉德
答案 0 :(得分:0)
我最后通过使用不同的webpack加载器定义来解决这个问题:我的旧文件的加载器,我不需要'es2015'预设,而我的新文件的另一个加载器我使用'es2015'预设。