什么是Closure编译器?

时间:2012-07-14 17:53:14

标签: javascript

如果你不知道我在说什么,请查看:http://closure-compiler.appspot.com/home(它是一个JavaScript缩小器)


在他们的网站上,他们说明了以下内容:

  

Closure Compiler将JavaScript编译成紧凑的,   高性能代码。编译器删除死代码并重写和   最小化剩下的内容,以便下载并快速运行。它也是   检查语法,变量引用和类型,并警告常见   JavaScript陷阱。这些检查和优化可以帮助您编写   不那么错误且易于维护的应用程序。

但有人可以真正详细解释这个Closure Compiler对我的代码做了什么吗?

2 个答案:

答案 0 :(得分:2)

Closure编译器将编译您的代码,并为您的代码执行标准优化技术。

从表面上看,生成的代码可能有也可能不具有相似性,但通常完全相同。

答案 1 :(得分:1)

https://developers.google.com/closure/compiler/docs/compilation_levels

  

ADVANCED_OPTIMIZATIONS转换包括:

     
      
  • 更积极的重命名:
      使用SIMPLE_OPTIMIZATIONS进行编译仅重命名函数内的参数和变量。 ADVANCED_OPTIMIZATIONS还重命名全局变量,函数名称和属性。

  •   
  • 死码删除:
      使用ADVANCED_OPTIMIZATIONS进行编译会删除可证明无法访问的代码。这与大型库结合使用时尤其有用。如果只使用大型库文件中的一些函数,编译器可以从输出中删除除这些函数之外的所有函数。

  •   
  • 全球内联:
      使用ADVANCED_OPTIMIZATIONS进行编译会将某些函数调用替换为函数体。这种转变被称为“内联”。编译器仅在确定内联是安全的并节省空间时才内联函数。当编译器确定它可以安全地进行编译时,使用ADVANCED_OPTIMIZATIONS进行编译也会内联常量和一些变量。

  •