支持JavaScript的Closure编译器
Posted 谷歌开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持JavaScript的Closure编译器相关的知识,希望对你有一定的参考价值。
Closure 编译器最初的发布可以追溯到 2009 年,最初版本支持 Java 环境。如今,我们宣布推出可在纯 javascript 环境中运行的 Closure 编译器,以用于非 Java 环境。其设计目标是在 NodeJS 环境下运行,同时支持部分流行的构建工具。
如果您尚未听说过 Closure 编译器,我们在此简单介绍一下吧:它是一款 JavaScript 优化器、转译器和类型检查器,可将您的代码编译为高性能的精简版。几乎所有的 Google 前端都使用它来编译,使代码尽可能精简、高效。
它支持 ES2015 中的新功能,例如,let、const 和 arrow 函数,还为 ES2015 方法提供其本身并不支持的 polyfill 插件。为了帮助您编写更优质、易维护、可扩展的代码,该编译器还检查语法以及类型的使用是否正确,并针对许多 JavaScript 问题提供警告。要详细了解该编译器,包括相关教程,请转至 developers.google.com/closure/compiler。
该版本并非采用 JavaScript 重写而成的 Closure 编译器。我们是将 Java 源代码编译为 JS 源代码,以便在 Node 环境下甚至是在古老的浏览器中运行。
请注意:JS 版目前为试验版。其执行可能与 Java 原生版有所不同,但我们相信,这是该编译器阵营的有益补充,未来,Closure 团队将继续改进和支持该版本。
要在您的项目中包含 JS 版 Closure 编译器,您应通过 NPM 将其作为依赖项添加到您的项目中 :
npm install --save-dev google-closure-compiler-js
然后,若要将此编译器与 Gulp 结合使用,您可以添加如下任务:
const compiler = require('google-closure-compiler-js').gulp();
gulp.task('script', function() {
// select your JS code here
return gulp.src('./src/**/*.js', {base: './'})
.pipe(compiler({
compilation_level: 'SIMPLE',
warning_level: 'VERBOSE',
output_wrapper: '(function(){\n%output%\n}).call(this)',
js_output_file: 'output.min.js', // outputs single file
create_source_map: true
}))
.pipe(gulp.dest('./dist'));
});
如果您希望从 google-closure-compiler(要求使用 Java)迁移到该版本,您需要先使用 gulp.src() 或类似方法加载 JavaScript,方可进行编译。由于该编译器在纯 JavaScript 环境下运行,因此,它无法直接从您的文件系统加载或保存文件。
此试验版当前并不支持 Java 版中支持的所有标志。然而,该编译器让您通过异常了解是否出现任何失误。
以上是关于支持JavaScript的Closure编译器的主要内容,如果未能解决你的问题,请参考以下文章
google closure 笔记-SOY template
带有 wro4j 和 Google Closure 编译器的 ECMASCRIPT 5