如何配置WebPack以支持Breeze-Client + DataJS的“global.window”

时间:2016-12-13 10:55:40

标签: webpack breeze datajs

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

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

  

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

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

Debug Details

我对整个主题都很陌生,所以我很难找到正确的解决方案。我相信某些需要在webpack中进行配置才能使其正常工作,但我不确定这些内容是什么 - 我对这里模糊的道歉 - 可能是webpack中的一些import-loader或ProvidePlugin引用。 config.js。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

来自我的webpack配置的片段:

NSString *str = @"ä";
NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *newStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
if([[newStr lowercaseString] hasPrefix:@"a"]){
    NSLog(@"%@",newStr);
}