Laya2.0
在Main.ts里:[code]import protoAll = require("../libs/protoAll");
var pCls = protoAll.com.bee.protobuf.ClimbingTowerInfoProto;
var p: protoAll.com.bee.protobuf.ClimbingTowerInfoProto = pCls.create();
p.curId = 10;
p.isSecondPass = true;[/code]
用了第三方库protobufjs。
protoAll.d.ts是proto打包出来的proto类文件,在vscode中TS项目测试过可以正常使用。
我已经生成出js和.d.ts代码了,在vscode里可以正常运行。laya里代码不会报错,编译项目时会报错。
而在Laya项目里,protoAll.d.ts放在libs下,protoAll.js放在bin/libs下,使用代码不会报错。编译项目时,按F5编译报错。把base.d.ts的引入改成相对路劲,就报其他的路径找不到。
出错了:
TypeScript error: node_modules/@types/node/index.d.ts(50,22): Error TS6053: File 'node_modules/@types/node/base.d.ts' not found.
现在把protobufjs放到Laya IDE的安装目录下的node_modules下面。可以编译通过了。
但又有新的问题,代码提示找不到proto对象的属性了。
原因我发现是.js文件的相对路径和.d.ts的相对路径不一致,导致编译能通过则找不到代码提示,能够提示就编译不通过。
因为我导入的import的路径,只能写一个,要么是js的路径,要么是.d.ts的路径。
嗯,我把这两个文件都放libs下就好了。
现在又有新的问题了,
用babel打包的js文件,项目编译会报错
SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'
而用webpack打包的话,编译不报错,运行时会报错:
TypeError: Cannot read property 'bee' of undefined
附件:
LayaProtobufjsTest.zip