把手已预编译为纯HTML

Dav*_*lay 2 node.js handlebars.js typescript

有没有一种方法可以将Handlebars模板预编译为纯HTML?车把预编译产生一个js文件。我可以在节点上运行该JS来生成HTML文件吗?这就是我正在尝试的方法:

// Get a Handlebars instance
var hb = require("handlebars");

// Load a template
import fs = require('fs');
var template:string = fs.readFileSync('templates/template.handlebars','utf8');

// Compile said template
var compiled = hb.precompile(template);

// Write JS file
fs.writeFileSync('compiled/template.js', compiled);

var test = compiled.main();

// Write HTML file
fs.writeFileSync('compiled/template.html', test);
Run Code Online (Sandbox Code Playgroud)

这是因为编译失败。main不是函数。虽然那里有一个主要功能,我正在尝试达到。

Dav*_*lay 5

找到了解决方案。您无需预编译,只需编译然后运行已编译的模板即可:

// Get a Handlebars instance
var hb = require("handlebars");

// Load a template
import fs = require('fs');
var template:string = fs.readFileSync('templates/template.handlebars','utf8');

// Compile said template
var compiled = hb.compile(template);
var html = compiled({});

// Write HTML file
fs.writeFileSync('compiled/template.html', html);
Run Code Online (Sandbox Code Playgroud)

可惜它不在文档中。