使用Yeoman渲染JavaScript块?

时间:2015-01-27 15:56:43

标签: javascript yeoman yeoman-generator

使用Yeoman创建JavaScript存储库类(或类似代码)的步骤(伪代码)是什么?模板似乎面向整个文件,由于方法会发生变化,因此无法正常工作。并且,我发现几乎没有使用循环构造输出的生成器。

This tutorial (link)深入人心,但两者都没有提及。

我的目标是呈现一个类文件,该文件将从现有数据库提供,并为每个文档或表创建一个文件。每个类文件大致包含:

vars for all sibling models
vars for all required utilities

1 x create function
    - input parameters (N x params ... based on table fields)
    - validation of parameters (N x statements ... based on table fields)
    - construction of query (based entirely on table fields)
    - execution

N x get function (N x methods ... based on indicies on table)
    - input parameters (N x params ... based on table fields)
    - validation of parameters (N x statements ... based on table fields)
    - construction of query (based entirely on table fields)
    - execution

... etc., etc., etc.

我是否正确假设每个参数签名...每个验证语句......每个查询...都必须动态构造字符串?并且,Yeoman没有内置子模板或循环逻辑?这不是什么大问题。我很惊讶这种普及的一代实用程序需要如此多的手动黑客攻击。

编辑...
Here's another tutorial (link).作者通过连接字符串手动构建HTML。糟糕!

1 个答案:

答案 0 :(得分:0)

嗯,当您致电this.fs.copyTpl()(或遗产this.template())时,Yeoman会提供Lodash templates支持。

Lodash支持模板中的循环和多种操作。一种选择是使用它们。

否则,您可以使用JavaScript AST(抽象语法树)构建/编辑文件。有多个节点模块可以这样做,你只需选择一个。由于这不是Yeoman特有的问题空间,因此我们让生成器作者选择他们喜欢的工具是有意义的。

对于它的价值,AST Query是一个轻松修改AST的选项。 AST Query是我们在Yeoman的Gruntfile API核心中使用的工具。