1

我正在使用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文件组合在一起。我怎样才能做到这一点?

4

2 回答 2

0

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

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

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

合并和最小化代码根本不应该是一个问题 - 它会很好地工作:) 希望这会有所帮助

于 2012-11-27T23:44:56.533 回答
0

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

于 2013-07-25T10:35:43.597 回答