是否有任何 TypeScript 工具或分支来支持公共命名空间混淆?即转:
class MyUtil {
print(): void { ... }
}
变成这样的东西:
class xxy {
aab(): void { ... }
}
如果没有,会直接派出编译器来提供这个吗?也许通过某种类型的类注释指示应该/不应该混淆什么。
(显然,公共混淆必须谨慎使用,对库没有好处!但如果在您的项目中始终如一地使用,那就太好了)
是否有任何 TypeScript 工具或分支来支持公共命名空间混淆?即转:
class MyUtil {
print(): void { ... }
}
变成这样的东西:
class xxy {
aab(): void { ... }
}
如果没有,会直接派出编译器来提供这个吗?也许通过某种类型的类注释指示应该/不应该混淆什么。
(显然,公共混淆必须谨慎使用,对库没有好处!但如果在您的项目中始终如一地使用,那就太好了)
我有完全相同的问题,它立即被SO删除。
https://github.com/angular/ts-minify
这正是您(和我)正在寻找的工具,它似乎工作得很好,我需要注释掉作者采取的一些我认为不适用的预防措施的部分。
我不相信有任何理由在 TypeScript 中这样做。您可以改为使用 Closure Compiler 之类的工具对 JavaScript 输出进行混淆处理。具体查看 Closure 的高级编译设置。
https://github.com/javascript-obfuscator/javascript-obfuscator
插件:
Webpack plugin: webpack-obfuscator Webpack loader: obfuscator-loader Gulp: gulp-javascript-obfuscator Grunt: grunt-contrib-obfuscator Rollup: rollup-plugin-javascript-obfuscator
笔记:
只混淆属于你的代码。
不建议混淆供应商脚本和 polyfill,因为 混淆后的代码会慢 15-80%(取决于选项)并且文件要大得多。