首页 > 解决方案 > 为任意代码生成提供示例是否有意义?

问题描述

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

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

标签: handlebars.js

解决方案


我能够写一个样本。

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

我想分享我在 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);

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


推荐阅读