This articlecontainspromotional content. Please helpimprove it by removingpromotional language and inappropriateexternal links, and by adding encyclopedic text written from aneutral point of view.(October 2019) (Learn how and when to remove this message) |
| Google Closure Tools | |
|---|---|
| Original author | |
| Initial release | November 5, 2009[1] |
| Final release | |
| Repository | |
| Written in | Java |
| Available in | JavaScript |
| Type | Ajax framework |
| License | Apache License 2.0 |
| Website | developers |
Google Closure Tools[3] was a set of tools built with the goal of helpingdevelopers optimize richweb applications withJavaScript. It was developed byGoogle for use in theirweb applications such asGmail,Google Docs andGoogle Maps.[4] As of August 1, 2024 the Closure Library has been sunset, for not "meeting the needs of modern JavaScript development".[5]
The Closure Compiler is a tool that attempts to compress and optimize JavaScript code, at the expense ofhuman readability. Unlike an actualcompiler, it does not compile from JavaScript tomachine code but rather minifies JavaScript.
The process executes the following steps:
It also checkssyntax,variablereferences, andtypes and warns aboutcommon JavaScript pitfalls.
It supportstranspiling modernECMAScript code to ECMAScript 5 to achieve a wider range ofbrowser compatibility, similar toBabel. This obviated Traceur Compiler, another project that supported transpiling ES6 to ES3.[6]
The Closure compiler also supportstype checking viaJSDoc type annotations.[7]
The Closure Compiler is available for use throughcommand line tools:
google-closure-compiler which provides three compilers: native binary executable (viaGraalVM), Java and a JavaScript-based oneThe Closure Compiler Service application provides a form for a user to input a URL pointing to a JavaScript source or enter JavaScript source code in a text box. The website will display the compiled JavaScript on the right side for the user to copy.[8]
An API is available, accessible viaPOST requests, parameters include:
The service is marked as deprecated and will eventually be removed.[9]
Programming languages that transpile to JavaScript can use the Closure Compiler in their toolchain. For example, the Closure Compiler is used inClojureScript to optimize the compiled JavaScript.[10]
Closure Compiler is built upon a modified version of theRhino JS engine built by Mozilla,Google Guava, a Java standard library,Protocol Buffers, Gson and various other tools for testing. It also ships with built-in JavaScriptJSDoc annotations for various popular projects like Node.js' standard API library, JQuery, and Google Map APIs.
The Closure Library is aJavaScript library, written specifically to take advantage of the Closure Compiler, based on amodular architecture. It providescross-browser functions forDOM manipulations andevents,Ajax andJSON, as well as more high-level objects such asUser Interface widgets and Controls.
Closure Templates are atemplating system for dynamically generatingHTML in bothJava[11] andJavaScript.[12]
Since the language is apparently referred to as "Soy" internally by Google, and "Soy" remains in some of the documentation and classes,[13] sometimes Closure Templates are referred to as "Soy Templates".
Closure Stylesheets provide extensions toCSS, which are transpiled to ordinary CSS. Internally in Google, this extended version of CSS is referred to as GSS.
As of November 2021, Closure Stylesheets have been deprecated in favor of tools such asSass andPostCSS.[14]