Google Closure Tools [3] es un conjunto de herramientas para ayudar a los desarrolladores a crear aplicaciones web enriquecidas con JavaScript . Fue desarrollado por Google para su uso en sus aplicaciones web como Gmail , Google Docs y Google Maps . [4] En 2023, el proyecto tenía más de 230 000 líneas de código sin contar el compilador Mozilla Rhino integrado .
Closure Compiler es una herramienta que permite que las descargas de JavaScript se ejecuten más rápido, a expensas de la legibilidad humana . No compila desde JavaScript a código de máquina , sino que compila desde JavaScript a un código JavaScript más eficiente.
El proceso ejecuta los siguientes pasos:
También verifica la sintaxis , las referencias de variables y los tipos y advierte sobre errores comunes de JavaScript .
Permite transpilar código ECMAScript moderno a ECMAScript 5 para que los programadores puedan escribir JavaScript que utilice nuevas características de ECMAScript y ejecutarlo en navegadores u otros entornos que aún no las admiten. Esto hizo innecesario Traceur Compiler, otro proyecto que admitía la transpilación de ES6 a ES3. [5]
El compilador Closure también admite la verificación de tipos a través de anotaciones de tipos que deben escribirse en los comentarios de JSDoc . [6]
Google proporciona herramientas de línea de comandos que se utilizan para optimizar y compilar .js
archivos:
google-closure-compiler
que proporciona tres compiladores: un ejecutable binario nativo (a través de GraalVM ), uno basado en Java y uno basado en JavaScriptLa aplicación Closure Compiler Service ofrece un formulario para que el usuario ingrese una URL que apunte a una fuente de JavaScript o ingrese el código fuente de JavaScript en un cuadro de texto. El sitio web se mostrará con el código JavaScript optimizado en el lado derecho para que el usuario lo copie. [7]
Hay una API disponible, accesible a través de solicitudes POST , los parámetros incluyen:
El servicio está marcado como obsoleto y eventualmente será eliminado. [8]
Los lenguajes de programación que se transpilan a JavaScript se benefician de las herramientas de cierre. Por ejemplo, Closure Compiler ayuda a que ClojureScript sea práctico al hacer que el código JavaScript compilado sea más eficiente. [9]
Closure Compiler se basa en una versión modificada del motor Rhino JS creado por Mozilla, Google Guava , una biblioteca estándar de Java, Protocol Buffers , Gson y varias otras herramientas para realizar pruebas. También incluye anotaciones JSDoc de JavaScript integradas para varios proyectos populares, como la biblioteca API estándar de Node.js, JQuery y las API de Google Maps.
Closure Library es una biblioteca de JavaScript escrita específicamente para aprovechar el compilador Closure, basada en una arquitectura modular . Proporciona funciones multiplataforma para manipulaciones y eventos DOM , Ajax y JSON , así como objetos de nivel superior como controles y widgets de interfaz de usuario .
Las plantillas de cierre son un sistema de plantillas para generar HTML dinámicamente tanto en Java [10] como en JavaScript . [11]
Dado que el lenguaje aparentemente se conoce como "Soy" internamente en Google, y "Soy" permanece en parte de la documentación y clases, [12] a veces las plantillas de cierre se denominan "plantillas Soy".
Las hojas de estilo Closure Stylesheets proporcionan extensiones de CSS , que se traducen a CSS normal. En Google, esta versión extendida de CSS se conoce como GSS.
A partir de noviembre de 2021, las hojas de estilo Closure han quedado obsoletas en favor de herramientas como Sass y PostCSS . [13]