|
发布人:开发者计划工程师 Sam Thorogood
Closure 编译器最初的发布可以追溯到 2009 年,最初版本支持 Java 环境。如今,我们宣布推出可在纯 JavaScript 环境中运行的 Closure 编译器,以用于非 Java 环境。其设计目标是在 NodeJS 环境下运行,同时支持部分流行的构建工具。
如果您尚未听说过 Closure 编译器,我们在此简单介绍一下吧:它是一款 JavaScript 优化器、转译器和类型检查器,可将您的代码编译为高性能的精简版。几乎所有的 Google 前端都使用它来编译,使代码尽可能精简、高效。
它支持 ES2015 中的新功能,例如,let、const 和arrow 函数,还为 ES2015 方法提供其本身并不支持的 polyfill 插件。为了帮助您编写更优质、易维护、可扩展的代码,该编译器还检查语法以及类型的使用是否正确,并针对许多 JavaScript 问题提供警告。要详细了解该编译器,包括相关教程,请转至 Google Developers。
1. 效果如何
该版本并非采用 JavaScript 重写而成的 Closure 编译器。我们是将 Java 源代码编译为 JS 源代码,以便在 Node 环境下甚至是在古老的浏览器中运行。您看到的关于 Closure 编译器的每篇博文或资源也都适用于此版本。
要详细了解 Closure 编译器的技术内幕,请务必查阅此博文(作者 Dimitris 是 Google Closure 团队员工)、Closure 工具博客中发布的其他博文、或者阅读一篇介绍 Closure 以及 Closure 如何帮助您在 2016 年构建项目的研究文章。
请注意:JS 版目前为试验版。其执行可能与 Java 原生版有所不同,但我们相信,这是该编译器阵营的有益补充,未来,Closure 团队将继续改进和支持该版本。
2. 如何使用该版编译器?
要在您的项目中包含 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 版中支持的所有标志。然而,该编译器让您通过异常了解是否出现任何失误。
|
|