2012-09-08 13 views
7

Tengo muchos fragmentos JS y compartidos en varios proyectos. Tengo que copiarlos y pasarlos a un único archivo para cada proyecto, o servirlos como archivos individuales en cdn. Ambas son malas ideas.Herramienta de compilación y administración de dependencias para JavaScript

¿Hay alguna herramienta de compilación y administración de dependencias como Maven para JavaScript? Idealmente, tomaría un conjunto de dependencias js y construiría un solo archivo js que puede ser servido en cdn.

Puedo escribir una secuencia de comandos para hacer eso. Pero estoy buscando si hay algo comparable a Maven para JS.


Actualización 2014: Sobre la base de las respuestas aquí y mi investigación siguientes son las herramientas más populares:

Bower, la NGP, RequireJS, Browserify, webpack, ronco, Gulp

Respuesta

5

Hay RequireJS, pero eso es algo de una cosa diferente a Maven, y lo que le pides que haga es diferente a Maven también. Hay varios combiner/minifiers JS, como jekyll-combiner y un trillón de otros.

Si usted es usando Maven, el JavaScript Maven Tools puede ser de su interés. Si no es así, no conozco una forma unificada de especificar, descargar, combinar, etc. para sistemas de compilación arbitrarios. Algunas de las cosas de node.js pueden ser útiles, pero nunca las he usado fuera del contexto de node.js, así que no estoy seguro.

+0

Gracias, ¿alguno de ellos combina/compila varios archivos a uno solo en tiempo de compilación? –

+0

@JohnS ¿Qué significa "en tiempo de compilación"? ¿Cómo estás construyendo? He utilizado combinadores de Maven en tiempo de compilación. –

+0

¿Qué combinador has usado con maven, cuál crees que es mejor? ¿Y hay alguno de ellos que acepte dependencias como maven en lugar de ruta de archivo? –

3

Echa un vistazo a grunt. Es una herramienta de compilación muy flexible para proyectos de JavaScript. Utilizado por jquery team y otros grandes proyectos. Combina, minimiza, prueba, archivos lint js, escritos en javascript, tiene docenas de complementos para lo que quieras

4

http://webjars.org/ empaqueta las bibliotecas JS como archivos JAR y las pone a disposición en Maven.

RequireJS no es un reemplazo de WebJars; lo complementa. RequireJS usará archivos JS públicos (en CDN) en tiempo de ejecución, mientras que Webjars descargará los archivos necesarios en tiempo de compilación y hará que usted los aloje usted mismo.

Como la mayoría de los archivos JS no están alojados en CDN, utilizo Webjars para descargar los archivos JS necesarios en tiempo de compilación, y los utilizo como referencia RequireJS. De esa manera consigo lo mejor de ambos mundos.

+1

WebJars son solo archivos zip con todos los recursos estáticos limpios. Me gusta mucho pero la gente sigue subestimando a maven para resolver sus dependencias del lado del cliente. No estoy seguro por qué :-(Mucho mejor y más elegante que usar Bower y descargar todo el voluminoso GitHub Repo IMO. – aruizca

+0

He hecho mi elección para WebJars. He visto [algunas otras opciones] (http: //centurion.nfors.com/w/programming/javascript/start # javascript_and_maven), pero para WebJars fue más fácil comenzar. –

Cuestiones relacionadas