使用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。糟糕!
答案 0 :(得分:0)
嗯,当您致电this.fs.copyTpl()
(或遗产this.template()
)时,Yeoman会提供Lodash templates支持。
Lodash支持模板中的循环和多种操作。一种选择是使用它们。
否则,您可以使用JavaScript AST(抽象语法树)构建/编辑文件。有多个节点模块可以这样做,你只需选择一个。由于这不是Yeoman特有的问题空间,因此我们让生成器作者选择他们喜欢的工具是有意义的。
对于它的价值,AST Query是一个轻松修改AST的选项。 AST Query是我们在Yeoman的Gruntfile API核心中使用的工具。