为任意代码生成提供样本是否有意义?

时间:2019-01-07 07:56:52

标签: handlebars.js

我是新手。我正在寻找一种通过某种输入数据从模板创建代码的通用方法。我发现车把很适合这个目的。但是这些文档集中在服务器端/浏览器在线模板(html)上。我的运行时将是外壳。我阅读并尝试了handlebars-cmd ...,但收效有限。我不知道如何在handlebars-cmd中包括自己的帮助程序或库,例如handlebars-helpers。

有人可以帮我举个例子吗?

1 个答案:

答案 0 :(得分:0)

我能够写一个样本。

我希望这小段代码可以帮助其他人运行和测试他们的模板以及他们的助手和局部文件...也许值得将其包含在示例目录或文档中...

我想分享我的第一个在node.js中运行的粗略示例 只需

npm i handlebars
npm i handlebars-helpers
npm i minimist

node hbrscmd.js --in some.json --template template.hbs --out myresult.txt     

hbrscmd.js的内容:

    var hbs = require('handlebars');
    var helpers = require('handlebars-helpers')({
        handlebars: hbs
    });

    var fs = require('fs');
    var args = require('minimist')(process.argv.slice(2));
    if (args.hasOwnProperty("v")) {
        console.log(args);
    }

    var datastring = fs.readFileSync(args.in, 'utf8');
    var data = JSON.parse(datastring);
    if (args.hasOwnProperty("v")) {
        console.log(data);
    }

    var templatefile = fs.readFileSync(args.template, 'utf8');
    //console.log(templatefile);
    var template = hbs.compile(templatefile);
    var output = template(data);

    fs.writeFileSync(args.out, output);

这就像我喜欢的那样。 不进行检查。