El Closure Compiler se lanzó originalmente en Java,
en el año 2009. Hoy, estamos anunciando que
el mismo Closure Compiler ahora está disponible en JavaScript puro, para utilizar sin Java. Está diseñado para ejecutarse en NodeJS, con soporte de algunas herramientas populares de compilación.
Si no lo conoces, el Closure Compiler es un optimizador, transpilador y verificador de tipo de JavaScript, que compila tu código en una versión minificada de alto rendimiento. Casi todas las interfaces web de Google lo utilizan para lograr el código más pequeño y rápido posible.
Soporta nuevas funciones en ES2015, como let, const y arrow, y provee polyfills para los métodos ES2015 que no se soportan en cualquier lugar. Para ayudarte a escribir un código superior, escalable y que admita mantenimiento, el compilador también verifica la sintaxis, el uso correcto de tipos, y provee advertencias para muchos problemas de JavaScript. Para obtener más información sobre el compilador (incluidos los instructivos), dirígete a
Google Developers.
¿Cómo funciona?
No se trata de una reescritura de Closure en JavaScript. En su lugar, compilamos la fuente Java a JS para que se ejecute bajo Node, o incluso dentro de un navegador simple antiguo. Cada publicación o recurso que ves sobre Closure Compiler también se aplicará a esta versión.
Para obtener más información sobre los detalles de Closure Compiler, asegúrate de
ver esta publicación de Dimitris (que trabaja en el equipo de Closure de Google), las otras publicaciones del blog
Herramientas de Closure, o
lee una publicación exploratoria sobre Closure y cómo puede colaborar en tu proyecto en 2016.
Recuerda que la versión de JS es experimental. Puede que no funcione de la misma manera que la versión Java nativa, pero creemos que es una incorporación interesante al panorama del compilador, y el equipo de Closure estará trabajando para mejorarla y soportarla con el tiempo.
¿Cómo puedo usarla?
Para incluir la versión JS de Closure Compiler en tu proyecto, debes agregarla como una dependencia de tu proyecto vía NPM.
npm install --save-dev google-closure-compiler-js
Luego, para utilizar el compilador con
Gulp, puedes agregar una tarea como esta.
const compiler = require('google-closure-compiler-js').gulp();
gulp.task('script', function() {
// select your JS code here
return gulp.src('./src/**/*.js', {base: './'})
.pipe(compiler({
compilation_level: 'SIMPLE',
warning_level: 'VERBOSE',
output_wrapper: '(function(){\n%output%\n}).call(this)',
js_output_file: 'output.min.js', // outputs single file
create_source_map: true
}))
.pipe(gulp.dest('./dist'));
});
Si deseas migrar de
google-closure-compiler (que requiere Java), deberás usar
gulp.src() o similar para cargar tu JavaScript y que se pueda compilar. Como este compilador se ejecuta en JavaScript puro, no puede cargar ni guardar archivos de tu sistema de archivos directamente.
Para obtener más información,
consulta el Uso,
los indicadores soportados, o
un proyecto de demostración. No todos los indicadores soportados en la versión de Java están disponibles en esta versión experimental. Sin embargo, el compilador te hará saber mediante una excepción si has utilizado alguno de los indicadores que no están disponibles.