protobuf.js 运行时错误 $protobuf 未定义

mp0*_*035 3 javascript protocol-buffers typescript ionic-framework

我在 ionic2 项目中使用 protobuf.js。我有一个有效的 .proto 文件,我首先将其转换为静态 javascript 文件:

pbjs -t static databaseapi.proto > databaseapi.js
Run Code Online (Sandbox Code Playgroud)

由于 ionic2 使用 typescript,我通过执行以下操作添加 d.ts 文件:

pbts databaseapi.js > databaseapi.d.ts
Run Code Online (Sandbox Code Playgroud)

我的应用程序可以转换并运行,但最终出现运行时错误:

运行时错误 $protobuf 未定义

我知道这是因为编译后的protobuf文件引用了变量$protobuf,但我不太知道这个变量是在哪里定义的。我也不知道如何包含丢失的文件,因为它需要由 js 文件而不是 ts 文件引用。

dco*_*ode 5

-t static只是创建原始代码,但不将其包装为模块(因此不定义$protobuf依赖项)。

要将其包装为模块,请-t static-module通过使用并选择所需的格式-w default|commonjs|amd|es6default使用适用于 AMD、CommonJS 和全局变量的通用包装器。

有关所有命令行选项,请参阅:https ://github.com/dcodeIO/protobuf.js#command-line