Cela peut être légèrement hors sujet, mais vous pouvez utiliser Grunt (http://gruntjs.com/) - qui s'exécute sur node.js (http://nodejs.org/, disponible pour toutes les principales plates-formes) pour exécuter des tâches depuis le ligne de commande. Il existe de nombreux plugins pour cet outil, comme un compilateur de modèles, https://npmjs.org/package/grunt-contrib-jst . Consultez la documentation sur GitHub, https://github.com/gruntjs/grunt-contrib-jst . (Vous devrez également comprendre comment exécuter le gestionnaire de packages de nœuds, https://npmjs.org/ . Ne vous inquiétez pas, c'est incroyablement facile et polyvalent.)
Vous pouvez ensuite conserver tous vos modèles dans des fichiers html séparés, exécuter l'outil pour les précompiler tous en utilisant un trait de soulignement (ce qui, je crois, est une dépendance du plugin JST, mais ne vous inquiétez pas, le gestionnaire de paquets de nœuds installera automatiquement les dépendances pour vous).
Cela compile tous vos modèles en un seul script, par exemple
templates.js
Le chargement du script définira un global - "JST" par défaut - qui est un tableau de fonctions, et peut être consulté comme ceci:
JST['templates/listView.html']()
qui serait similaire à
_.template( $('#selector-to-your-script-template'))
si vous mettez le contenu de cette balise de script dans (templates /) listView.html
Cependant, le vrai kicker est le suivant: Grunt est livré avec cette tâche appelée `` watch '', qui surveillera essentiellement les modifications apportées aux fichiers que vous avez définis dans votre fichier local grunt.js (qui est essentiellement un fichier de configuration pour votre projet Grunt, en javascript ). Si vous avez grogné, lancez cette tâche pour vous, en tapant:
grunt watch
à partir de la ligne de commande, Grunt surveillera toutes les modifications que vous apportez aux fichiers et exécutera automatiquement toutes les tâches que vous avez configurées pour cela dans ce fichier grunt.js s'il détecte des changements - comme la tâche jst décrite ci-dessus. Modifiez puis enregistrez vos fichiers, et tous vos modèles se recompilent dans un seul fichier js, même s'ils sont répartis sur un certain nombre de répertoires et de sous-répertoires.
Des tâches similaires peuvent être configurées pour linter votre javascript, exécuter des tests, concaténer et minimiser / uglifier vos fichiers de script. Et tout peut être lié à la tâche de surveillance, de sorte que les modifications apportées à vos fichiers déclencheront automatiquement une nouvelle «construction» de votre projet.
Il faut un certain temps pour configurer les choses et comprendre comment configurer le fichier grunt.js, mais cela vaut bien le temps investi, et je ne pense pas que vous reviendrez jamais à une façon de travailler pré-grognement