我正在尝试将项目从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一般无法访问“窗口”。
我对整个主题都很陌生,所以我很难找到正确的解决方案。我相信某些需要在webpack中进行配置才能使其正常工作,但我不确定这些内容是什么 - 我对这里模糊的道歉 - 可能是webpack中的一些import-loader或ProvidePlugin引用。 config.js。
非常感谢任何帮助。
答案 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);
}