packagist/closurecompiler-bin

此包已被废弃,不再维护。作者建议使用packagelist/closurecompiler-bin包。

Closure Compiler是一个使JavaScript下载和运行更快的工具。它是一个真正的JavaScript编译器。它不是从源语言编译到机器代码,而是从JavaScript编译到更好的JavaScript。它会解析你的JavaScript,分析它,移除死代码,并重写和最小化剩余的部分。它还会检查语法、变量引用和类型,并警告常见的JavaScript陷阱。

v2016.02.08 2018-01-20 09:17 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:26:09 UTC


README

Build Status

Closure Compiler是一个使JavaScript下载和运行更快的工具。它是一个真正的JavaScript编译器。它不是从源语言编译到机器代码,而是从JavaScript编译到更好的JavaScript。它会解析你的JavaScript,分析它,移除死代码,并重写和最小化剩余的部分。它还会检查语法、变量引用和类型,并警告常见的JavaScript陷阱。

入门

获取帮助的选项

  1. Closure Compiler Discuss Group中发帖
  2. Stack Overflow上提问
  3. 查阅FAQ

自己构建

注意:Closure Compiler需要Java 7或更高版本。

使用Ant

  1. 下载Ant构建工具

  2. 在源代码树的根目录中,有一个名为build.xml的Ant文件。要使用它,导航到同一目录并输入以下命令:

    ant jar
    

    这将生成一个名为build/compiler.jar的jar文件。

使用Eclipse

  1. 下载并打开Eclipse IDE
  2. 导航到文件 > 新建 > 项目 ...并创建一个Java项目。给项目命名。
  3. 选择从现有源创建项目并选择已签出的源代码树的根目录作为现有目录。
  4. 导航到 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 将自动重新排序输入。

如何贡献

报告一个错误

  1. 首先确保这是一个真正的错误,而不是 Closure Compiler 的工作方式(特别是对于 ADVANCED_OPTIMIZATIONS)。
  1. 如果您仍然认为您已经发现了一个错误,请确保还没有人报告过。查看 已知问题 列表。
  2. 如果尚未报告,请发布一个新的问题。确保添加足够的细节,以便可以重现错误。重现代码越小越好。

建议一个功能

  1. 查阅 常见问题解答 以确保您想要的行为不是明确排除的(例如字符串内联)。
  2. 确保没有人提出过相同的要求。查看 已知问题 列表。
  3. 阅读有关 接受哪种类型的特性请求 的信息。
  4. 将您的请求作为问题提交。

提交补丁

  1. 所有贡献者都必须签署贡献者许可协议。有关详细信息,请参阅 CONTRIBUTORS 文件。
  2. 为确保您的更改类型将被接受,请在Closure Compiler 讨论组上询问您的补丁。
  3. 分支仓库。
  4. 进行您的更改。
  5. 提交您的更改的拉取请求。项目开发者将审查您的工作,然后将其合并到项目中。

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兼容。