Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 闭包编译器:如何分离和控制编译/缩小过程?_Javascript_Obfuscation_Compiler Optimization_Google Closure Compiler_Deobfuscation - Fatal编程技术网

Javascript 闭包编译器:如何分离和控制编译/缩小过程?

Javascript 闭包编译器:如何分离和控制编译/缩小过程?,javascript,obfuscation,compiler-optimization,google-closure-compiler,deobfuscation,Javascript,Obfuscation,Compiler Optimization,Google Closure Compiler,Deobfuscation,Google Closure编译器是一个功能强大的JS编译器和缩略器,它提供了许多优化选项,如重命名变量、删除死代码、折叠变量声明、重写控制流结构等 我想要的是在一个输入JS程序上分别应用一个或一些优化。例如,我可能想用短名称重命名变量,但不想删除死代码。如何实现这种详细的编译过程控制?CC的源代码是否公开了特定的接口来进行定制,或者我应该编写自己的过程(如果是,我应该如何开始?) 命令行功能确实提供了几个用于控制编译的选项,但不足以满足上面的要求。由于源代码有点复杂,很少有详细的设计文档,我真

Google Closure编译器是一个功能强大的JS编译器和缩略器,它提供了许多优化选项,如重命名变量、删除死代码、折叠变量声明、重写控制流结构等

我想要的是在一个输入JS程序上分别应用一个或一些优化。例如,我可能想用短名称重命名变量,但不想删除死代码。如何实现这种详细的编译过程控制?CC的源代码是否公开了特定的接口来进行定制,或者我应该编写自己的过程(如果是,我应该如何开始?)

命令行功能确实提供了几个用于控制编译的选项,但不足以满足上面的要求。由于源代码有点复杂,很少有详细的设计文档,我真的被困在这里了。如果您有任何见解,我们将不胜感激,谢谢:)

请查看。该类根据编译器选项中设置的选项列出编译期间运行的所有过程。有些编译器选项可以从命令行进行控制,但我们通常会尽量使编译器相对简单和易于使用,而不是要求用户对一系列不同的编译器标志做出决定。另外,有些过程实际上增加了代码大小,但它们的方式使以后的过程更容易减少代码大小


当然,如果您只是在试验编译器或试图了解它是如何工作的,您可以通过添加新标志或直接修改DefaultPassConfig来打开或关闭任何过程。

许多标志都由控制。有时候修改这些选项更容易。顺便说一句,团队中的一些成员往往会经常检查堆栈溢出
googleclosurecompiler
标记和邮件列表,因此不需要在两个位置都发布相同的问题。