我现在要使用静态js代码来实现proto的编码解码。不讨论直接用.proto的情况。我现在的问题是用导出的.js而不是用.proto的问题。
用npm的protobuf将area.proto文件导出area.js代码,并导出对应的area.d.ts文件,.js放到官方指定的bin/libs/protobuf文件夹下, .d.ts放到libs/protobuf下。
然后写了一个模块
MyModule[code]import { com} from "../libs/protobuf/area.js";
export function testProto():void
{
console.log("call testProto");
var ProtobufUtil = com.bee.protobuf;
let msg = ProtobufUtil.ProtoArea.create();
let buffer = ProtobufUtil.ProtoArea.encode(msg).finish();
let decode = ProtobufUtil.ProtoArea.decode(buffer);
console.log("test");
console.log(`buffer = ${Array.prototype.toString.call(buffer)}`);
}[/code]
然后用import {testProto} from "MyModule" 导入
import {testProto} from "MyModule";
// 程序入口
class GameMain{
constructor()
{
Laya.init(600,400, 0x000000);
console.log("start");
testProto();
}
}
new GameMain();
编译没报错,运行起来程序窗口打开了,也没有报错。只是没有打印任何东西出来。
感觉就是执行到import {testProto} from "MyModule";这一行就停住了。
谁知道这是为什么?
是不是引擎不支持import语法?
tsconfig.json里target设为es5、es6都一样没变化。