Isso pode ser um pouco fora do tópico, mas você pode usar o Grunt (http://gruntjs.com/) - que é executado no node.js (http://nodejs.org/, disponível para todas as principais plataformas) para executar tarefas no linha de comando. Existem vários plugins para essa ferramenta, como um compilador de modelos, https://npmjs.org/package/grunt-contrib-jst . Consulte a documentação no GitHub, https://github.com/gruntjs/grunt-contrib-jst . (Você também precisará entender como executar o gerenciador de pacotes de nós, https://npmjs.org/ . Não se preocupe, é incrivelmente fácil e versátil.)
Você pode manter todos os seus modelos em arquivos html separados, executar a ferramenta para pré-compilar todos eles usando sublinhado (o que acredito ser uma dependência do plug-in JST, mas não se preocupe, o gerenciador de pacotes do nó instalará automaticamente as dependências para você).
Isso compila todos os seus modelos em um script, digamos
templates.js
O carregamento do script definirá um global - "JST" por padrão - que é uma matriz de funções e pode ser acessado da seguinte forma:
JST['templates/listView.html']()
o que seria semelhante ao
_.template( $('#selector-to-your-script-template'))
se você colocar o conteúdo dessa tag de script em (templates /) listView.html
No entanto, o verdadeiro problema é o seguinte: o Grunt vem com esta tarefa chamada 'watch', que basicamente monitora as alterações nos arquivos que você definiu no arquivo grunt.js local (que é basicamente um arquivo de configuração para o seu projeto Grunt, em javascript ) Se você tiver grunhido, inicie esta tarefa para você digitando:
grunt watch
a partir da linha de comando, o Grunt monitorará todas as alterações que você fizer nos arquivos e executará automaticamente todas as tarefas que você configurou nesse arquivo grunt.js se detectar alterações - como a tarefa jst descrita acima. Edite e salve seus arquivos, e todos os seus modelos serão recompilados em um arquivo js, mesmo se estiverem espalhados por vários diretórios e subdiretórios.
Tarefas semelhantes podem ser configuradas para aprender a usar javascript, executar testes, concatenar e minificar / modificar os arquivos de script. E tudo pode ser vinculado à tarefa de observação, para que as alterações em seus arquivos disparem automaticamente uma nova 'compilação' do seu projeto.
Demora algum tempo para definir as coisas e entender como configurar o arquivo grunt.js, mas vale a pena o tempo investido e acho que você nunca voltará a uma maneira de trabalhar antes do trabalho