我没有使用过除尘,但我确实查看了它的最新源代码。
这些是进行实际编译的行:
var filename = filepath.split("/").reverse()[0].replace(".html", "").replace(".dust", "");
file_to_create = file_to_create + "\\" + filename + "_" + version + ".js";
//compile to dust
// notice the second parameter to compile() is the BASE of the filename!
var compiled = dust.compile(data, filename);
因为它使用dust.compile(),所以用法应该和文档中的一样。由于编译的结果是 javascript,你应该像普通的 js 脚本一样引用它。
<script type='text/javascript' src='/mycompilecode/mytemplate-1.0.js'></script>
根据docs,当代码加载时,它将包含并执行dust.register() 方法,然后就可以使用了。
如果您在上面注意到dust-down 如何使用编译,它使用基本文件名作为键,这就是您想要传递给dust.loadSource() 的内容。
......所以,让我们把它们放在一起......
- 从文件“intro.html”开始作为您的模板。
- 使用dust-down编译它。我假设结果将是这样(如果您没有在命令行上指定除尘,则 0_0_1 是默认版本):/templates/compiled/intro_0_0_1.js
以下代码是它的使用方式(假设已经加载了灰尘):
<script type='text/javascript' src='/templates/compiled/intro_0_0_1.js'></script>
<script type='text/javascript'>
var myCompiledTemplateKey = 'intro'; // notice! no version or .js extension
dust.loadSource(myCompiledTemplateKey );
dust.render(myCompiledTemplateKey , {name: "Fred"}, function(err, out) {
console.log(out);
});
</script>