在用Creator构建发行版本后,不能正常运行,查了一下Creator用的代码压缩算法导致局部的类定义名称被压缩替换.
百分之百重现,代码如下:
/**装饰器*/
export function ClassA(...args) {
return function (clazz: any) {
// getQualifiedClassName参考了Egret的类名反射实现
// 如果当前传入的 class(js中就是一个函数)的名字已经被压缩成替换符了,这里就一定不会正确
var clazzName: string = getQualifiedClassName(clazz);
//这里在发行版本和Debug版本输出的名称是不同的
console.log(clazzName);
}
}
/**应用装饰器*/
@ClassA(1,2,3)
export class MM {
public name: string = 'MM ';
}
我发行成Debug版本后,用Uglifyjs压缩,对比引擎的压缩算法,压缩率是低一点,但是却运行良好。引擎是否可以提供压缩选项会好一点。