编译Typescript项目时卡死,通过node断点调试layaair-cmd,已定位是tsSort.js问题

系统及版本:
  • IDE:1.7.21
  • Engine:1.7.21
  • OS: Windows10
  • Node: v8.12.0

 
 
 
 复现步骤:(或者直接github地址:https://github.com/raofr/laya_compile_bug
  1. 创建TypeScript空项目 
  2. 修改src/LayaSample.ts

import WebGL = Laya.WebGL;
// 程序入口
class GameMain{
constructor()
{
Laya.init(600,400, WebGL);
}
static wallet:com.battlecry.idle_m.data_proto.WalletModel;
}
new GameMain();
        然后编译就卡死
 
 
 
 
Bug调试:
经过node inspect 发现是layaair-cmd 目录下的tools/tsSort.ts卡死
53行:
var staticHelp = /\bstatic\b\s+\w+:((?:\w+\.?)+)\s*=\s*new\s+/ //.exec(str)[1]
及执行到解析正则的时候 81行:
var staticClass = staticHelp.exec(filecont[j]);
这个时候当filecont[j] 为 
static wallet:com.battlecry.idle_m.data_proto.WalletModel;
直接卡死。
 
我直接用node写了个简单代码 test.js:
var staticHelp = /\bstatic\b\s+\w+:((?:\w+\.?)+)\s*=\s*new\s+/
var line = " static wallet:com.battlecry.idle_m.data_proto.WalletModel;"
var a=staticHelp.exec(line);
console.log(a);
的确会卡死。应该是你们的这个tsSort里面的正则有问题吧。
 
多谢
 
 
已邀请:

Laya_Aaron

赞同来自:

这个问题正在查看下载demo,稍后确认

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作