2010-08-31 17 views
7

Nuestras estructuras de archivos son bastante buenas, organizando la funcionalidad en carpetas separadas. Mi pregunta es cómo otros trabajan en aplicaciones que involucran más de 500 archivos JavaScript.Trabajando en grandes aplicaciones de JavaScript

Hemos escrito un plugin maven para concatenar estos archivos juntos (también ejecuta el compresor YUI). Sin embargo, esto implica 3-10 segundos de compilación para cada cambio.

Si este paso es necesario para la organización de una aplicación grande, siento que un archivo HTML bien estructurado que utilice todos estos recursos me ahorraría 45 minutos cada día.

+0

, realmente debes pensar en usar flash o silverlight – Aviatrix

+0

¡Eso es mucho JavaScript! – ChaosPandion

+2

Mira información en LabJS, RequireJS, quizás dojo. Hay sofisticadas soluciones de dependencia por ahí. – Pointy

Respuesta

1

Para mi propio framework projects, normalmente monitoreo, prueba o servicios in-page para orquestar otros toolkits (pero no tan altos como su conteo de archivos), mi enfoque ha sido apuntar a los archivos cargados individualmente y dinámicamente durante el desarrollo. Para la prueba, ejecutaré una compilación para comprimir y versionar los archivos individuales, y probar los archivos individuales nuevamente porque, dependiendo del orden de concatenación, la técnica de compresión y el navegador, puedo terminar con un error de guión y me duele desenterrarlo de un archivo de monstruo. En tercer lugar, voy a concatenar juntos y probar una vez más.

En la referencia HTML, apuntaré al archivo descomprimido, que carga las dependencias especificadas, o al archivo compuesto. Un archivo de arranque separado nombra las dependencias, que se incluyen en el archivo compuesto o se cargan dinámicamente según sea necesario.

De esta manera puedo agregar o cambiar un archivo y comenzar a desarrollar y probar sin reconstruir.

+0

Gracias, excelentes consejos aquí. Puedo intentar incorporar una solución de dependencia también. – Drew

0

Es probable que la solución se concatene y se comprima solo para pruebas y producción del usuario.

Para el desarrollo, probablemente sea mejor simplemente importarlos todos en el archivo HTML. Agiliza el proceso de desarrollo y también simplifica la depuración. También permite que el navegador guarde en caché algunos de esos archivos.

Cuando no puede confiar en copias en caché (que, con 500 archivos, no creo que sean muy a menudo), ralentizará los tiempos de carga.

0

Es probable que pueda ahorrar mucho tiempo ejecutando solo el compresor en producción. El compresor YUI es notoriamente lento, porque utiliza el intérprete Java Rhino para analizar el JavaScript y analizarlo, etc.

Cuestiones relacionadas