3

我正在尝试将一个项目从 SystemJS 转换为 WebPack,该 WebPack 使用的是微风客户端和 datajs(用于 OData 支持)。总的来说,这是一个 angular2 应用程序,因此轻风桥 angular2 也是该项目的一部分。

虽然 SystemJS 版本运行良好,但 WebPack 版本会抛出错误:

无法初始化 OData。需要支持远程 OData

显然,问题是微风客户端无法在 global.window.OData 中找到 OData 库。一些快速调试表明,根本原因似乎是“global.window”通常未定义(在函数__requireLibCore 中)。请注意,datajs 似乎已正确包含在 webpack 中,因此问题不是缺少 datajs,而是通常来说,微风客户端无法访问“窗口”。

调试详细信息

我对整个主题都很陌生,所以我很难找到正确的解决方案。我相信需要在 webpack 中配置一些东西才能使其工作,但我不确定这可能是什么 - 我很抱歉在这里含糊不清 - 也许是 webpack.config.js 中的一些导入加载器或 ProvidePlugin 参考。

任何帮助将非常感激。

4

1 回答 1

1

我有同样的问题并使用 webpacks importsloader 来解决这个问题。它允许您将变量注入模块。更多信息在这里

这是我的 webpack 配置中的片段:

        { test: require.resolve('breeze-client/breeze.debug'), loader: 'imports-loader?this=>window,global=>{window: this}'},
于 2017-01-05T13:12:18.717 回答