本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 1762|回复: 0
打印 上一主题 下一主题

Google Developers 博客:支持 JavaScript 的 Closure 编译器

[复制链接]
跳转到指定楼层
1#
发表于 2016-9-19 17:33:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发布人:开发者计划工程师 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 版中支持的所有标志。然而,该编译器让您通过异常了解是否出现任何失误。

ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表