从一个简单的Angular 2 + Webpack工作项目,我试图通过实现Thrift的教程来集成Apache Thrift。除了浏览器找不到Thrift模块之外,我达到了一切可行的地步:
Uncaught ReferenceError: Thrift is not defined
当thrift生成的文件tutorial_types.js
尝试访问thrift模块时,会抛出该错误:
InvalidOperation = function(args) {
this.whatOp = null;
this.why = null;
if (args) {
if (args.whatOp !== undefined && args.whatOp !== null) {
this.whatOp = args.whatOp;
}
if (args.why !== undefined && args.why !== null) {
this.why = args.why;
}
}
};
Thrift.inherits(InvalidOperation, Thrift.TException);
Angular加载应用程序,加载生成的文件,尝试加载Thrift并失败。
该项目可在此处获取:https://github.com/osechet/angular-thrift
要测试,请运行:
git clone https://github.com/osechet/angular-thrift
cd angular-thrift
npm install
npm gen.thrift
npm start
然后在浏览器中打开http://localhost:8080/。
我检查了Webpack创建的文件,并捆绑了thrift模块。我错过了什么?
答案 0 :(得分:1)
感谢@ JoeClay的评论,我发现了问题。 Thrift提供的Javascript库不会导出任何模块,因此Webpack没有正确捆绑。
我将项目更改为使用Thrift(thrift/lib/nodejs/lib/thrift/browser.js
)提供的nodejs库的浏览器模块。这样,我就能够使整个应用程序正常工作。