webpack - 如何为 Breeze-Client+DataJS 配置 WebPack 支持 "global.window"

标签 webpack breeze datajs

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

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

Unable to initialize OData. Needed to support remote OData

显然,问题是 breeze-client 无法在 global.window.OData 中找到 OData 库。一些快速调试显示根本原因似乎是“global.window”通常未定义(在函数 __requireLibCore 中)。请注意,datajs 似乎已正确包含在 webpack 中,因此问题不是缺少 datajs,而是 breeze-client 通常无法访问“window”。

Debug Details

我对整个主题都很陌生,所以我很难找到正确的解决方案。我相信需要在 webpack 中配置 something 才能使这项工作正常进行,但我不确定这可能是什么 - 我很抱歉在这里含糊不清 - 也许是 webpack 中的一些 imports-loader 或 ProvidePlugin 引用。配置.js.

如有任何帮助,我们将不胜感激。

最佳答案

我遇到了同样的问题,使用 webpacks importsloader 解决了这个问题。它允许您将变量注入(inject)模块。更多信息 here

这是我的 webpack 配置的片段:

        { test: require.resolve('breeze-client/breeze.debug'), loader: 'imports-loader?this=>window,global=>{window: this}'},

关于webpack - 如何为 Breeze-Client+DataJS 配置 WebPack 支持 "global.window",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41119357/

相关文章:

angular - HMR 是附加而不是替换

knockout.js - knockout - 使用 foreach 并一起排序

javascript - 为什么我会收到此错误?错误: Unable to locate a 'Type' by the name: 'User:#Default'

javascript - javascript 中 oData 端点的动态查询

asp.net-web-api - Http 响应中缺少 DataServiceVersion header

javascript - react 路由错误

reactjs - 如何编写Electron React App入门套件?

javascript - 为多级 JSON 创建 Breeze 元数据

javascript - 将 javascript 库添加到 angular-brunch-seed

javascript - 使用webpack时如何避免这种硬编码的index.js?