我使用 Typescript 命令 (tsc) 创建一个包含所有平台类的 Javascript 文件。
tsc "./Main.ts" -out "./script/myProject_debug.js" --declarations
然后,我想用 Google Closure (compiler.jar) 混淆这个文件,如下所示:
java -jar ./compiler/compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js "./script/myProject_debug.js" > "./script/myProject.js".
但是,当我执行生成的混淆/优化代码时,出现以下错误:未捕获的类型错误:无法读取未定义的属性“原型”
它匹配以下非混淆的 JS 代码(由 tsc 命令生成):
var __extends = this.__extends || function (d, b) {
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
}
这部分用于翻译“extends”Typescript 关键字,而 b 的等效项未定义。
有没有人遇到类似的错误或/并获得解决方案,以便能够使用 Typescript 编译文件来混淆 Google Closure?
我尝试使用 uglifyjs 命令,输出文件工作正常,但我想要完全混淆(类、参数、变量、方法等)。此外,Google Closure 提供的额外优化也将受到欢迎。
感谢您!