Así como tenemos Módulos en NodeJS, también los podemos tener en el cliente usando RequireJS.
RequireJS es una librería basada en la especificación de CommonJS para Módulos la cual nos trae una implementación para cargar módulos del lado del cliente. Esto nos permite mantener nuestro código limpio y en una suerte de “carga en demanda”, ya que se pueden definir dependencias.
También tiene optimizaciones para los scripts, por ej. unificación y compresión para el deploy (por el momento solo para NodeJS y Java).
Veamos un ejemplo simple de como utilizarla y que en que nos ayuda:
Lo anterior está un poquito inflado, pero es algo bastante común. Por lo general tenemos un layout o master-page donde metemos la mayoria de scripts, pero asi y todo, tenemos que pensar en dependencias, que scripts antes de cual, etc… (en el caso anterior debería cambiar el orden exactamente alreves :P)
Con RequireJS sería algo de este estilo:
Agregamos a nuestro directorio require.js
Bastante mas ordenado, no?. Lo interesante es que no necesito preocuparme en el html de las dependendencias que tiene cada script, ni el orden, ni siquiera acordarme de agregar todos los utilizados. Simplemente referencio en cada script sus dependencias y RequireJS se encarga de lo restante.
Para jQuery varia mínimamente su uso, si están utilizando jQuery vean la implementación aca