将灰尘模板编译成一个javascript文件

时间:2012-11-27 14:10:49

标签: javascript templating dust.js

我正在使用dustc附带的dustjs-linkedin来编译我的模板。但是,它只允许我一次编译一个模板。所以我保留了两个目录templates/js/templates/并使用以下脚本一次编译它们:

#!/bin/bash
for name in `ls templates/ | grep -o -P '^[^.]+'`; do
  dustc --name=$name templates/$name.html js/templates/$name.js
done

但是,通过这种方式,模板位于不同的JS文件中。所有这些都是相同的模式:

(function(){dust.register("xxx",body_0);function body_0(chk,ctx){...}return body_0;})();

这可能会导致浏览器下载大量不必要的字节。所以我希望将模板编译成一个JS文件,或者将编译好的JS文件组合在一起。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

不确定究竟是什么问题,但是如果你只想组合文件,那么使用像sprockets或require.js的优化器工具这样的依赖管理器就可以了。

当它们进入同一个文件时它们处于相同的模式这一事实并没有做任何事情 - 它们都包含在匿名自执行函数中以保护命名空间。

另一方面,如果你试图通过删除重复的模式来优化代码,那么我建议使用uglifyjs或google的闭包编译器自动执行此操作。

组合和最小化代码应该不是一个问题 - 它会很好用:)希望这有帮助

答案 1 :(得分:0)

您可以使用Duster.js(自动防尘监视和node.js预编译)和r.js合并到一个文件中。