Ser*_*sky 3 thrift babel webpack nativescript angular
我试图在我的Angular&Nativescript项目中使用Apache Thrift,但是通过'tns Preview --bundle'或任何其他tns命令,我得到了
TypeError: Cannot read property 'browser' of undefined
File: "<unknown>, line: 1, column: 265
Run Code Online (Sandbox Code Playgroud)
Apache Thrift版本0.11.0 / 1.0.0dev,Angular版本7.1.0,Nativescript版本5.1.0
在platform / android / app / src / main / assets / app / vendor.js中,我可以看到:
/* istanbul ignore next */
if (undefined.browser) {
defaultEncoding = 'utf-8'
} else {
var pVersionMajor = parseInt(undefined.version.split('.')[0].slice(1), 10)
Run Code Online (Sandbox Code Playgroud)
当我期望类似之类的东西时global.process.browser,我可以在vendor.js中找到另一种平静。在另一个平静中,我可以看到类似的东西undefined.nextTick(...)。我知道这是某种巴别塔问题,但我不知道如何解决。
我使用thrift --gen js:node脚本生成我的节俭文件(错误没有意义)。没有它们,所有的作品都很酷,但是后来我试图从Thrift执行任何Thrift生成的文件/任何模块,我在上面遇到了一个异常。my_component.ts
import { Component, OnInit } from '@angular/core';
import { TJSONProtocol } from 'thrift'; // or anything else
@Component({...});
export class MyComponent implements OnInit {
ngOnInit () {
// console.log(TJSONProtocol); // Uncomment this string to get an exception.
}
constructor() {...};
}
Run Code Online (Sandbox Code Playgroud)
没有提供任何问题ng serve。我希望这里是解决此错误并使其节俭与nativescript兼容的任何方法,或希望将thrift与nativescript结合使用的任何其他方法。
问题出在Nativescript提供的默认webpack.config.js中。在:
plugins: [
// Define useful constants like TNS_WEBPACK
new webpack.DefinePlugin({
"global.TNS_WEBPACK": "true",
"process": undefined,
})
Run Code Online (Sandbox Code Playgroud)
您需要删除line "process": undefined。
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |