TypeScript Obfuscation

use*_*840 19 obfuscation typescript

是否有任何TypeScript工具或分支支持公共名称空间模糊处理?即转:

class MyUtil {
   print(): void { ... }
}
Run Code Online (Sandbox Code Playgroud)

变成这样的东西:

class xxy {
   aab(): void { ... }
}
Run Code Online (Sandbox Code Playgroud)

如果没有,会直接分叉编译器来提供这个吗?也许用某种类的类注释指示应该/不应该混淆的内容.

(显然,必须谨慎使用公共混淆,对图书馆没有好处!但如果在整个项目中使用一致,那就太好了)

use*_*380 15

我有完全相同的问题,它被SO立即删除.

https://github.com/angular/ts-minify

这正是你(和我)正在寻找的工具,它似乎工作得很好,我需要评论一些作者正在采取预防措施的部分我认为不适用.

  • 询问_tools_是询问_ways_的方法之一。从程序上来讲,“工具扩展了方式”。这是不适当的。我不明白 推荐了这个。 (2认同)

小智 9

我不相信在TypeScript中有任何理由这样做.您可以使用Closure Compiler之类的东西对JavaScript输出进行模糊处理.具体来看Closure的高级编译设置.

  • 我很欣赏它可以用普通的JS和其他工具完成.但我认为将它作为TS编译器的一部分是有意义的,它将减少你需要安装的单独工具的数量,如果没有别的.我想看看TS提供缩小和混淆选项. (4认同)
  • 使用Typescript"了解"混淆是绝对有意义的.我想强制将属性明确标记为我需要向HTML页面公开的"公共"(或导出或其他).例如,我正在使用Knockout,我需要绑定到viewmodel上的一些属性,但不是全部,或者我可能有私有函数.如果Typescript可以为我处理这个问题,我会得到更高效的代码,标准混淆器可能没有足够的信息来做出决定. (2认同)