【问题标题】:compile dust templates into one javascript file将灰尘模板编译成一个 javascript 文件
【发布时间】:2012-11-27 14:10:48
【问题描述】:

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

【问题讨论】:

    标签: javascript templating dust.js


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢。使用dust.js 一段时间后,我发现这种模式并不常见。希望uglifyjs可以优化一下。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2016-09-26
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      相关资源
      最近更新 更多