什么是闭包编译器
What is Closure Compiler?
如果您不知道我在说什么,请查看: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进行编译还会内联常量和一些变量。
- 使用Google闭包编译器包含一个Ecmascript 6类
- 如何告诉闭包javascript编译器不要混淆webkitAudioContext的方法名称
- 使用Google闭包编译器调试代码删除
- google闭包编译器、PRETTY_PRINT和object literal
- 闭包编译器--调试解决了我的错误
- 闭包编译器、主干和元编程
- 无法使用 ant 和闭包编译器编译 javascript,因为 Jquery 的 $ 是未声明的
- 为什么 Google 闭包编译器会重命名对象的属性名称
- 谷歌闭包编译器不压缩字符串值
- Google 闭包编译器和音频事件
- 如何在JavaScript中为Google闭包编译器设置参数类型
- 闭包编译器不支持ES6
- 闭包编译器高级和服务器端注入的Javascript
- 闭包编译器将't关闭可疑代码警告
- 谷歌闭包编译器,某些属性永远不会被重命名
- 用谷歌闭包编译器编译jQuery会产生Uncaught TypeError
- 什么是闭包编译器
- 闭包编译器无法读取目录
- 使用闭包编译器简单优化从函数内部删除调试代码
- 闭包编译器命令行没有'似乎不适用于最新版本