Giter Club home page Giter Club logo

closure-compiler's Introduction

The Closure Compiler performs checking, instrumentation, and optimizations on JavaScript code.

Quick Start

  1. Ensure that you have Java 7 installed.

  2. Download the [Closure Compiler] (https://code.google.com/p/closure-compiler/wiki/BinaryDownloads?tm=2).

  3. Run the following command from the command line to compile a JavaScript file:

    java -jar compiler.jar --js hello.js --js_output_file hello-compiled.js
    

Read the [documentation] (http://code.google.com/closure/compiler/docs/gettingstarted_app.html) to learn more about how to use the Closure Compiler.

Building it Yourself

Note: The Closure Compiler requires Java 7 or higher.

Using Ant

  1. Download the Ant build tool.

  2. At the root of the source tree, there is an Ant file named build.xml. To use it, navigate to the same directory and type the command

    ant jar
    

    This will produce a jar file called build/compiler.jar.

Using Eclipse

  1. Download and open the Eclipse IDE.
  2. Navigate to File > New > Project ... and create a Java Projet. Give the project a name.
  3. Select Create project from existing source and choose the root of the checked-out source tree as the existing directory.
  4. Navigate to the build.xml file. You will see all the build rules in the Outline pane. Run the jar rule to build the compiler in build/compiler.jar.

Running

On the command line, type

java -jar compiler.jar

This starts the compiler in interactive mode. Type

var x = 17 + 25;

then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux) and "Enter" again. The Compiler will respond:

var x=42;

The Closure Compiler has many options for reading input from a file, writing output to a file, checking your code, and running optimizations. To learn more, type

java -jar compiler.jar --help

More detailed information about running the Closure Compiler is available in the documentation.

Compiling Multiple Scripts

If you have multiple scripts, you should compile them all together with one compile command.

java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js

The Closure Compiler will concatenate the files in the order they're passed at the command line.

If you need to compile many, many scripts together, you may start to run into problems with managing dependencies between scripts. In this case, you should use the Closure Library. It contains functions for enforcing dependencies between scripts, and a tool called calcdeps.py that knows how to give scripts to the Closure Compiler in the right order.

Closure Compiler License

Copyright 2009 The Closure Compiler Authors.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Dependency Licenses

Rhino

Two copies of Rhino exist in this repository:

Code Path lib/rhino
URL http://www.mozilla.org/rhino
Version Trunk
License Netscape Public License and MPL / GPL dual license
Description Mozilla Rhino is an implementation of JavaScript for the JVM.
Local Modifications Minor changes to parsing JSDoc that usually get pushed up-stream to Rhino trunk.
Code Path src/com/google/javascript/rhino, test/com/google/javascript/rhino
URL http://www.mozilla.org/rhino
Version 1.5R3, with heavy modifications
License Netscape Public License and MPL / GPL dual license
Description A partial copy of Mozilla Rhino. Mozilla Rhino is an implementation of JavaScript for the JVM. The JavaScript parser and the parse tree data structures were extracted and modified significantly for use by Google's JavaScript compiler.
Local Modifications The packages have been renamespaced. All code not relevant to parsing has been removed. A JsDoc parser and static typing system have been added.

Args4j

Code Path lib/args4j.jar
URL https://args4j.dev.java.net/
Version 2.0.26
License MIT
Description args4j is a small Java class library that makes it easy to parse command line options/arguments in your CUI application.
Local Modifications None

Guava Libraries

Code Path lib/guava.jar
URL http://code.google.com/p/guava-libraries/
Version 17.0
License Apache License 2.0
Description Google's core Java libraries.
Local Modifications None

JSR 305

Code Path lib/jsr305.jar
URL http://code.google.com/p/jsr-305/
Version svn revision 47
License BSD License
Description Annotations for software defect detection.
Local Modifications None

Jar Jar Links

Code Path lib/jarjar.jar
URL http://jarjar.googlecode.com/
Version 1.1
License Apache License 2.0
Description A utility for repackaging Java libraries.
Local Modifications None

JUnit

Code Path lib/junit.jar
URL http://sourceforge.net/projects/junit/
Version 4.11
License Common Public License 1.0
Description A framework for writing and running automated tests in Java.
Local Modifications None

Protocol Buffers

Code Path lib/protobuf-java.jar
URL http://code.google.com/p/protobuf/
Version 2.5.0
License New BSD License
Description Supporting libraries for protocol buffers, an encoding of structured data.
Local Modifications None

Ant

Code Path lib/ant.jar, lib/ant-launcher.jar
URL http://ant.apache.org/bindownload.cgi
Version 1.8.1
License Apache License 2.0
Description Ant is a Java based build tool. In theory it is kind of like "make" without make's wrinkles and with the full portability of pure java code.
Local Modifications None

JSON

Code Path lib/json.jar
URL http://json.org/java/index.html
Version JSON version 20090211
License MIT license
Description JSON is a set of java files for use in transmitting data in JSON format.
Local Modifications None

Mockito

Code Path lib/mockito-core.jar
URL https://code.google.com/p/mockito
Version 1.9.5
License MIT license
Description Mockito is an open source testing framework for Java. The framework allows the creation of Test Double objects (called "Mock Objects") in automated unit tests for the purpose of Test-driven Development (TDD) or Behavior Driven Development (BDD).
Local Modifications None

Objenesis

Code Path lib/objenesis.jar
URL http://objenesis.org
Version 1.2
License Apache 2.0 license
Description Depended by lib/mockito-core.jar, not used directly.
Local Modifications None

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.