什么是闭包编译器

What is Closure Compiler?

本文关键字:编译器 闭包 什么      更新时间:2023-10-01

如果您不知道我在说什么,请查看:http://closure-compiler.appspot.com/home(这是一个JavaScript迷你程序)


在他们的网站上,他们声明如下:

闭包编译器将JavaScript编译成紧凑的,高性能代码。编译器删除死代码并重写和最大限度地减少剩余的内容,以便快速下载和运行。它还检查语法、变量引用和类型,并警告常见的JavaScript陷阱。这些检查和优化可以帮助您编写bug较少且易于维护的应用程序。

但是,有人真的能详细解释一下这个闭包编译器对我的代码做了什么吗?

闭包编译器将编译您的代码,并对代码执行标准优化技术。

从表面上看,生成的代码可能有相似性,也可能没有相似性,但通常工作原理完全相同。

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

ADVANCED_OPTIMIZATIONS转换包括:

  • 更激进的重命名:
    使用SIMPLE_OPTIMIZATIONS编译仅重命名函数中的参数和变量。ADVANCED_OPTIMIZATIONS还重命名全局变量、函数名和属性。

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

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