packagist / closurecompiler-bin
Closure Compiler是一个使JavaScript下载和运行更快的工具。它是一个真正的JavaScript编译器。它不是从源语言编译到机器代码,而是从JavaScript编译到更好的JavaScript。它会解析你的JavaScript,分析它,移除死代码,并重写和最小化剩余的部分。它还会检查语法、变量引用和类型,并警告常见的JavaScript陷阱。
This package is not auto-updated.
Last update: 2022-02-01 12:26:09 UTC
README
Closure Compiler是一个使JavaScript下载和运行更快的工具。它是一个真正的JavaScript编译器。它不是从源语言编译到机器代码,而是从JavaScript编译到更好的JavaScript。它会解析你的JavaScript,分析它,移除死代码,并重写和最小化剩余的部分。它还会检查语法、变量引用和类型,并警告常见的JavaScript陷阱。
入门
获取帮助的选项
- 在Closure Compiler Discuss Group中发帖
- 在Stack Overflow上提问
- 查阅FAQ
自己构建
注意:Closure Compiler需要Java 7或更高版本。
使用Ant
-
下载Ant构建工具。
-
在源代码树的根目录中,有一个名为
build.xml
的Ant文件。要使用它,导航到同一目录并输入以下命令:ant jar
这将生成一个名为
build/compiler.jar
的jar文件。
使用Eclipse
- 下载并打开Eclipse IDE。
- 导航到
文件 > 新建 > 项目 ...
并创建一个Java项目。给项目命名。 - 选择
从现有源创建项目
并选择已签出的源代码树的根目录作为现有目录。 - 导航到
build.xml
文件。您将在大纲窗格中看到所有构建规则。运行jar
规则以在build/compiler.jar
中构建编译器。
运行
在命令行中,在此项目的根目录下输入
java -jar build/compiler.jar
这将以交互模式启动编译器。输入
var x = 17 + 25;
然后按“Enter”,然后按“Ctrl-Z”(在Windows上)或“Ctrl-D”(在Mac或Linux上)并再次按“Enter”。编译器将响应
var x=42;
Closure Compiler 有许多选项,用于从文件读取输入,将输出写入文件,检查您的代码以及运行优化。要了解更多信息,请输入
java -jar compiler.jar --help
有关运行 Closure Compiler 的更详细信息,请参阅 文档。
编译多个脚本
如果您有多个脚本,您应该使用一个编译命令将它们全部一起编译。
java -jar compiler.jar --js_output_file=out.js in1.js in2.js in3.js ...
您还可以使用 minimatch 风格的 glob。
# Recursively include all js files in subdirs java -jar compiler.jar --js_output_file=out.js 'src/**.js' # Recursively include all js files in subdirs, exclusing test files. # Use single-quotes, so that bash doesn't try to expand the '!' java -jar compiler.jar --js_output_file=out.js 'src/**.js' '!**_test.js'
Closure Compiler 将根据命令行中传递的顺序连接文件。
如果您使用 glob 或许多文件,您可能开始遇到脚本之间依赖关系管理的问题。在这种情况下,您应该使用 Closure Library。它包含用于强制脚本之间依赖关系的函数,并且 Closure Compiler 将自动重新排序输入。
如何贡献
报告一个错误
- 首先确保这是一个真正的错误,而不是 Closure Compiler 的工作方式(特别是对于 ADVANCED_OPTIMIZATIONS)。
- 查看 官方文档
- 查阅FAQ
- 在 Stack Overflow 和 Closure Compiler 讨论组 中搜索
- 如果您仍然认为您已经发现了一个错误,请确保还没有人报告过。查看 已知问题 列表。
- 如果尚未报告,请发布一个新的问题。确保添加足够的细节,以便可以重现错误。重现代码越小越好。
建议一个功能
- 查阅 常见问题解答 以确保您想要的行为不是明确排除的(例如字符串内联)。
- 确保没有人提出过相同的要求。查看 已知问题 列表。
- 阅读有关 接受哪种类型的特性请求 的信息。
- 将您的请求作为问题提交。
提交补丁
- 所有贡献者都必须签署贡献者许可协议。有关详细信息,请参阅 CONTRIBUTORS 文件。
- 为确保您的更改类型将被接受,请在Closure Compiler 讨论组上询问您的补丁。
- 分支仓库。
- 进行您的更改。
- 提交您的更改的拉取请求。项目开发者将审查您的工作,然后将其合并到项目中。
Closure Compiler 许可证
版权所有 2009 The Closure Compiler 作者。
根据 Apache 许可证 2.0 版(“许可证”);除非遵守许可证,否则不得使用此文件。您可以在 https://apache.ac.cn/licenses/LICENSE-2.0 获取许可证副本。
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何形式的保证或条件,无论是明示的还是暗示的。有关许可证的权限和限制的具体语言,请参阅许可证。
依赖项许可证
Rhino
代码路径 |
src/com/google/javascript/rhino , test/com/google/javascript/rhino |
URL | http://www.mozilla.org/rhino |
版本 | 1.5R3,进行了大量修改 |
许可证 | Netscape 公共许可证和 MPL / GPL 双许可 |
描述 | Mozilla Rhino 的部分副本。Mozilla Rhino 是 JVM 上的 JavaScript 实现。JavaScript 解析树数据结构被提取并进行了重大修改,以供 Google 的 JavaScript 编译器使用。 |
本地修改 | 已重命名包名。已删除所有与解析树无关的代码。已添加 JsDoc 解析器和静态类型系统。 |
Args4j
代码路径 | lib/args4j.jar |
URL | https://args4j.dev.java.net/ |
版本 | 2.0.26 |
许可证 | MIT |
描述 | args4j 是一个小的 Java 类库,它使得在 CUI 应用程序中解析命令行选项/参数变得容易。 |
本地修改 | 无 |
Guava 库
代码路径 | lib/guava.jar |
URL | https://github.com/google/guava |
版本 | 18.0 |
许可证 | Apache 许可证 2.0 |
描述 | Google 的核心 Java 库。 |
本地修改 | 无 |
JSR 305
代码路径 | lib/jsr305.jar |
URL | http://code.google.com/p/jsr-305/ |
版本 | svn 版本 47 |
许可证 | BSD 许可证 |
描述 | 用于软件缺陷检测的注解。 |
本地修改 | 无 |
JUnit
代码路径 | lib/junit.jar |
URL | http://sourceforge.net/projects/junit/ |
版本 | 4.11 |
许可证 | 通用公共许可证 1.0 |
描述 | 用于在 Java 中编写和运行自动化测试的框架。 |
本地修改 | 无 |
Protocol Buffers
代码路径 | lib/protobuf-java.jar |
URL | http://code.google.com/p/protobuf/ |
版本 | 2.5.0 |
许可证 | 新 BSD 许可证 |
描述 | 支持结构化数据编码的协议缓冲区库。 |
本地修改 | 无 |
Truth
代码路径 | lib/truth.jar |
URL | https://github.com/google/truth |
版本 | 0.24 |
许可证 | Apache 许可证 2.0 |
描述 | Java 单元测试的断言/命题框架 |
本地修改 | 无 |
Ant
代码路径 |
lib/ant.jar , lib/ant-launcher.jar |
URL | https://ant.apache.ac.cn/bindownload.cgi |
版本 | 1.8.1 |
许可证 | Apache 许可证 2.0 |
描述 | Ant 是一个基于 Java 的构建工具。从理论上讲,它类似于没有 make 的皱纹,并且具有纯 Java 代码的完全可移植性。 |
本地修改 | 无 |
GSON
代码路径 | lib/gson.jar |
URL | https://code.google.com/p/google-gson/ |
版本 | 2.2.4 |
许可证 | Apache许可证2.0 |
描述 | 一个Java库,用于将JSON转换为Java对象以及反向操作 |
本地修改 | 无 |
Node.js Closure Compiler Externs
代码路径 | contrib/nodejs |
URL | https://github.com/dcodeIO/node.js-closure-compiler-externs |
版本 | e891b4fbcf5f466cc4307b0fa842a7d8163a073a |
许可证 | Apache 2.0许可证 |
描述 | NodeJS API的类型合约 |
本地修改 | 对它们进行重大修改,以便与NpmCommandLineRunner兼容。 |