Buckets:
arudradey/ml-cpu-storage / emsdk /upstream /emscripten /node_modules /google-closure-compiler /README.md
| # google-closure-compiler | |
| [](https://badge.fury.io/js/google-closure-compiler) | |
| Check, compile, optimize and compress Javascript with Closure-Compiler | |
| This repository tracks issues related to the publication to npmjs.org and associated plugins. | |
| Any bugs not related to the plugins themselves should be reported to the | |
| [main repository](https://github.com/google/closure-compiler/). | |
| **Note that the installed binary is not actually JavaScript, but native binary or Java jar file depending on the local system.** | |
| ## Getting Started | |
| If you are new to [Closure-Compiler](https://developers.google.com/closure/compiler/), make | |
| sure to read and understand the | |
| [compilation levels](https://developers.google.com/closure/compiler/docs/compilation_levels) as | |
| the compiler works very differently depending on the compilation level selected. | |
| For help or questions with the compiler, the best resource is | |
| [Stack Overflow](http://stackoverflow.com/questions/tagged/google-closure-compiler). Posts there | |
| are monitored by multiple Closure Compiler team members. | |
| You may also post in the | |
| [Closure Compiler Discuss Google Group](https://groups.google.com/forum/#!forum/closure-compiler-discuss). | |
| *Please don't cross post to both Stack Overflow and Closure Compiler Discuss.* | |
| The compiler is distributed as a Java jar or as Mac OS, Linux and Windows native binaries. | |
| ### Native Binary Version | |
| On Linux, Mac OS and Windows, optional dependencies will install a native binary of the compiler. | |
| Native binaries offer faster compile times without requiring Java to be installed and available. | |
| Compilations with a very large number of source files may be slightly slower than the java version. | |
| ### Java Version | |
| Requires java to be installed and in the path. Using the java version typically results in faster compilation times. | |
| ## Usage | |
| The simplest way to invoke the compiler (e.g. if you're just trying it out) is with [`npx`](https://www.npmjs.com/package/npx): | |
| npx google-closure-compiler --js=my_program.js --js_output_file=out.js | |
| The npx version will attempt to detect the best platform to use. You can also specify the platform | |
| with the special `--platform` flag. | |
| ### Installation | |
| ``` | |
| npm install --save google-closure-compiler | |
| ``` | |
| ### Configuration | |
| See the [full list of compiler flags](https://github.com/google/closure-compiler/wiki/Flags-and-Options). | |
| The build tool plugins take options objects. The option parameters map directly to the | |
| compiler flags without the leading '--' characters. You may also use camelCase option names. | |
| Values are either strings or booleans. Options which have multiple values can be arrays. | |
| ```js | |
| { | |
| js: ['/file-one.js', '/file-two.js'], | |
| compilation_level: 'ADVANCED', | |
| js_output_file: 'out.js', | |
| debug: true | |
| } | |
| ``` | |
| For the java version, some shells (particularly windows) try to do expansion on globs rather | |
| than passing the string on to the compiler. To prevent this it is necessary to quote | |
| certain arguments: | |
| ```js | |
| { | |
| js: '"my/quoted/glob/**.js"', | |
| compilation_level: 'ADVANCED', | |
| js_output_file: 'out.js', | |
| debug: true | |
| } | |
| ``` | |
| ## Build Tool Plugins | |
| The compiler package also includes build tool plugins for [Grunt](http://gruntjs.com/) and [Gulp](http://gulpjs.com/). There is also an [official webpack plugin](https://www.npmjs.com/package/closure-webpack-plugin). | |
| * [Grunt Plugin](https://github.com/google/closure-compiler-npm/blob/master/packages/google-closure-compiler/docs/grunt.md) | |
| * [Gulp Plugin](https://github.com/google/closure-compiler-npm/blob/master/packages/google-closure-compiler/docs/gulp.md) | |
| * [Webpack Plugin](https://github.com/webpack-contrib/closure-webpack-plugin) | |
| ### Community Maintained Plugins | |
| Additionally, community members have created plugins leveraging this library. | |
| * [Rollup Plugin](https://github.com/ampproject/rollup-plugin-closure-compiler) | |
| ## Advanced Java Version Usage | |
| ### Changing the Path to the Java SDK | |
| Override the path before first use. | |
| ``` | |
| const Compiler = require('google-closure-compiler'); | |
| Compiler.prototype.javaPath = '/node_modules/MODULE_NAME/jre/jre1.8.0_131.jre/Contents/Home/bin/java'; | |
| const compiler = new Compiler({args}); | |
| ``` | |
| ### Running the compiler using nailgun | |
| *Note: nailgun users are encouraged to try the native binary versions where available.* | |
| This gets around the long startup time of Google Closure Compiler using | |
| [Nailgun](https://github.com/facebook/nailgun), which runs a single java process in the background | |
| and keeps all of the classes loaded. | |
| First you need to install closure-gun by running the following command. | |
| ```bash | |
| npm install closure-gun | |
| ``` | |
| Then point the package to use closure-gun rather than the JDK. | |
| ```js | |
| const compilerPackage = require('google-closure-compiler'); | |
| compilerPackage.compiler.JAR_PATH = undefined; | |
| compilerPackage.compiler.prototype.javaPath = './node_modules/.bin/closure-gun' | |
| ``` | |
| Note that when using gulp, Only invocations without gulp.src work with nailgun. | |
| ## Native Node Usage (for Plugin Authors) | |
| A low-level node class is included to facilitate spawning the compiler jar as a process from Node. | |
| In addition, it exposes a static property with the path to the compiler jar file. | |
| ### Java Version | |
| ```js | |
| const ClosureCompiler = require('google-closure-compiler').compiler; | |
| console.log(ClosureCompiler.COMPILER_PATH); // absolute path to the compiler jar | |
| console.log(ClosureCompiler.CONTRIB_PATH); // absolute path to the contrib folder which contain externs | |
| const closureCompiler = new ClosureCompiler({ | |
| js: 'file-one.js', | |
| compilation_level: 'ADVANCED' | |
| }); | |
| const compilerProcess = closureCompiler.run((exitCode, stdOut, stdErr) => { | |
| //compilation complete | |
| }); | |
| ``` | |
| ## License | |
| Copyright 2015 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. | |
| ## Version History | |
| Closure Compiler release notes can be found on the | |
| [main repository wiki](https://github.com/google/closure-compiler/wiki/Releases). | |
Xet Storage Details
- Size:
- 6.49 kB
- Xet hash:
- 37a13b27f4c6ff97915b84bddd408f01661c199df5ab00b146c6fe6699b6e5f6
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.