Esto podría estar ligeramente fuera de tema, pero podría usar Grunt (http://gruntjs.com/), que se ejecuta en node.js (http://nodejs.org/, disponible para todas las plataformas principales) para ejecutar tareas desde línea de comando. Hay un montón de complementos para esta herramienta, como un compilador de plantillas, https://npmjs.org/package/grunt-contrib-jst . Consulte la documentación en GitHub, https://github.com/gruntjs/grunt-contrib-jst . (También deberá comprender cómo ejecutar el administrador de paquetes de nodos, https://npmjs.org/ . No se preocupe, es increíblemente fácil y versátil).
Luego puede mantener todas sus plantillas en archivos html separados, ejecutar la herramienta para precompilarlas todas con subrayado (lo que creo que es una dependencia para el complemento JST, pero no se preocupe, el administrador de paquetes de nodo instalará automáticamente las dependencias por usted).
Esto compila todas sus plantillas en un script, digamos
templates.js
Al cargar el script se establecerá un global - "JST" por defecto - que es una matriz de funciones, y se puede acceder de esta manera:
JST['templates/listView.html']()
que sería similar a
_.template( $('#selector-to-your-script-template'))
si coloca el contenido de esa etiqueta de script en (templates /) listView.html
Sin embargo, el verdadero truco es este: Grunt viene con esta tarea llamada 'watch', que básicamente supervisará los cambios en los archivos que ha definido en su archivo grunt.js local (que es básicamente un archivo de configuración para su proyecto Grunt, en javascript ) Si tienes gruñido comienza esta tarea por ti, escribiendo:
grunt watch
desde la línea de comandos, Grunt supervisará todos los cambios que realice en los archivos y ejecutará automáticamente todas las tareas que haya configurado en ese archivo grunt.js si detecta cambios, como el tarea jst descrita anteriormente. Edite y guarde sus archivos, y todas sus plantillas se vuelven a compilar en un solo archivo js, incluso si están distribuidas en varios directorios y subdirectorios.
Se pueden configurar tareas similares para alinear su javascript, ejecutar pruebas, concatenar y minimizar / uglificar sus archivos de script. Y todo puede estar vinculado a la tarea de observación, por lo que los cambios en sus archivos desencadenarán automáticamente una nueva 'compilación' de su proyecto.
Lleva algo de tiempo configurar las cosas y entender cómo configurar el archivo grunt.js, pero vale la pena el tiempo invertido, y no creo que alguna vez vuelvas a una forma de trabajo previa al gruñido.