我使用 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".
但是,当我执行生成的混淆/优化代码时,出现以下错误: Uncaught TypeError: Cannot read property 'prototype' of undefined
匹配以下非混淆 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 提供的额外优化。
谢谢!