Build de un proyecto javascript

18 views
Skip to first unread message

@soyjavi

unread,
May 19, 2011, 3:07:08 AM5/19/11
to JS Meetup Bilbao
Buenas compañeros,

¿Conoceis alguna herramienta que te haga una "build" de todos tus
javascripts a un unico fichero, compactado, ofuscado, etc? Se que con
rake (ruby) hay tecnicas, pero me gustaría saber si alguien tiene
algo. La verdad es que para mi framework me vendría muy bien, pero
creo que es algo interesante.

David Santamaria

unread,
May 19, 2011, 3:14:15 AM5/19/11
to jsmeetu...@googlegroups.com
Hola Javi,
No se si has mirado este proyecto,
http://code.google.com/closure/compiler/
Quizas vayan por ahi los tiros.
Un saludo.

El día 19 de mayo de 2011 09:07, @soyjavi
<javi.jime...@gmail.com> escribió:

--
David.

David Santamaria

unread,
May 19, 2011, 3:21:28 AM5/19/11
to jsmeetu...@googlegroups.com
Por ampliarme un poco mas,
yo separaria en dos fases el proceso que comentas, es decir, tendria
mi herramienta de Compilado + Analisis Estatico , durante el proceso
de desarrollo (como tienes tu compilador en cualquier otro lenguaje),
y posteriormente tendria una herramienta tipo YUICompressor (tengo que
poner el link a esta? :P) para el empaquetado y distribucion (a.k.a.
minimizado y ofuscamiento), como tienes el "linker"(?¿) en otros
lenguajes.
No se que te parece, asi puedes desarrollar y compilar sin tener que
empaquetar, o al menos yo trabajaba mejor asi.
Un saludo.

El día 19 de mayo de 2011 09:14, David Santamaria
<d.high...@gmail.com> escribió:

--
David.

@soyjavi

unread,
May 19, 2011, 4:43:45 AM5/19/11
to JS Meetup Bilbao
Muchisimas gracias David!!!

Le voy a echar un vistazo al Closure Compiler (cuando saque un
ratillo) ...

On 19 mayo, 09:21, David Santamaria <d.highway...@gmail.com> wrote:
> Por ampliarme un poco mas,
> yo separaria en dos fases el proceso que comentas, es decir, tendria
> mi herramienta de Compilado + Analisis Estatico , durante el proceso
> de desarrollo (como tienes tu compilador en cualquier otro lenguaje),
> y posteriormente tendria una herramienta tipo YUICompressor (tengo que
> poner el link a esta? :P) para el empaquetado y distribucion (a.k.a.
> minimizado y ofuscamiento), como tienes el "linker"(?¿) en otros
> lenguajes.
> No se que te parece, asi puedes desarrollar y compilar sin tener que
> empaquetar, o al menos yo trabajaba mejor asi.
> Un saludo.
>
> El día 19 de mayo de 2011 09:14, David Santamaria
> <d.highway...@gmail.com> escribió:
>
>
>
>
>
>
>
>
>
> > Hola Javi,
> > No se si has mirado este proyecto,
> >http://code.google.com/closure/compiler/
> > Quizas vayan por ahi los tiros.
> > Un saludo.
>
> > El día 19 de mayo de 2011 09:07, @soyjavi
> > <javi.jimenez.vil...@gmail.com> escribió:

hyperandroid

unread,
May 19, 2011, 6:38:30 AM5/19/11
to jsmeetu...@googlegroups.com
Closure compiler te hace las dos cosas:

por un lado, te hace analisis estático del código fuente, y dependiendo del --compilation_level te hace sin mas compactado de todos los ficheros, o ofuscacion total. El tema de obfuscacion tiene su aquel, porque vas a perder la compatibilidad de tu codigo con bibliotecas de terceros. No te sorprendas si la primera vez que pasas el closure indicandole --warning_level VERBOSE te de 200 warnings y bastantes errores en 500 lineas de js ;).

lo increiblemente bueno de closure, es que ademas del compilado, si anotas apropiadamente los comentarios de las fucniones, incluso te comprueba los tipos de los parámetros del código que vas ejecutar. Tambien puedes anotar funciones como @private para controlar el alcance de llamdas, marcar el @constructor , o indicar quien @extends, @override o @interface. Es una pasada.
Estas anotaciones ya son estandar en el mundo javascript. El jsdoc toolkit, los tiene en cuenta igualmente (se ha roto un poco la compatibilidad de algunas anotaciones por cierto) y cuando te genera la documentación del código, marca los elementos en consecuencia. Además, por ejemplo el editor que yo uso Webstorm (es de pago, pero los 60 euros que vale la licencia personal los amortizar cuando hacer el primer refactor automático desde el IDE) tambien tiene en cuenta estas anotaciones, y en el análisis estático de código que te hace te va indicando cositas que no le gustan.
Podeis mirar CAAT y la documentación generada por JSDoc toolkit si quereis para ver como defino una clase en una closure de funcion implicita, como esta comentada y anotado el constructor, y la documentació que genera despues el JSdoc toolkit.
No os aburro mas.

-i
Reply all
Reply to author
Forward
0 new messages