Google 开源的 JavaScript 编译器,通过解析、分析与重写代码来检查语法、变量引用和类型,并删除死代码、压缩体积,使脚本下载和运行更快。
这个工具是什么
Closure Compiler 是 Google 开源的 JavaScript 编译器,采用 Apache-2.0 许可证。它并非把源码编译成机器码,而是把 JavaScript 编译成更优的 JavaScript:解析输入代码,分析变量引用与类型,删除死代码,重写并最小化剩余部分,同时检查语法并提示常见陷阱。其 ADVANCED 模式是一种“全局”优化器,要求能看到每个全局变量、导出变量和属性名的全部使用情况,并据此激进地删除和重命名变量与属性。README 明确指出,它不适合任意 JavaScript,输入代码需按 Closure Compiler 的约定编写;非 ADVANCED 模式已被弃用。
核心能力
- 解析 JavaScript 并检查语法、变量引用与类型,提示常见陷阱
- 删除死代码,重写并最小化剩余代码,减小输出体积
- ADVANCED 模式下激进重命名变量与属性,进一步压缩代码
- 支持通过自定义 externs 文件保留部分名称不被重命名
科研中的典型用法
- 对按 Closure 约定编写的 JavaScript 项目执行 ADVANCED 编译,压缩并优化发布代码
- 在编译过程中获得类型与变量引用检查,辅助发现代码中的潜在问题
- 为需要被外部代码访问的全局变量或属性编写 externs 文件,避免被重命名破坏
快速上手
可从 GitHub 仓库获取源码并按官方文档构建,主页 developers.google.com/closure/compiler 提供使用说明。入门要点:优先使用 ADVANCED 模式,其他模式已弃用;输入代码需按 Closure Compiler 的约定编写,模块应使用 base.js 的 goog.module() 与 goog.require();属性访问需统一用 obj[p] 或 obj.propName,不能混用。
生态与相近工具
同领域还有各类 JavaScript 压缩与打包工具,README 认为它们在非 ADVANCED 模式下表现相当且与 JS 生态集成更好,因此 Closure Compiler 已弃用这些模式。Closure Compiler 的取舍在于:只有 ADVANCED 模式才体现其全局优化能力,但要求代码专门为其编写,并需维护 externs;若代码未按此约定编写,使用它可能生成损坏的输出。
项目信息
- 仓库:google/closure-compiler
- 星标:7,686 · 派生:1,185
- 主要语言:JavaScript
- 许可证:Apache-2.0
- 最近提交:2026-09-17
- 项目主页:https://developers.google.com/closure/compiler/
本文属于《学科研究工具知识库 · 数学》第 4 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

发表评论 取消回复