javascript - 使用 Yeoman 渲染 JavaScript block ?

标签 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。哎呀!

最佳答案

好吧,Yeoman 提供了 Lodash templates当您调用 this.fs.copyTpl()(或旧版 this.template())时提供支持。

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

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

无论如何,AST Query是一个轻松修改 AST 的选项。 AST 查询是我们在 Yeoman 中的 Gruntfile API 核心中使用的工具。

关于javascript - 使用 Yeoman 渲染 JavaScript block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174625/

相关文章:

javascript - 如何在 Yeoman 中使用 promises 进行递归提示?

javascript - 在 asp.net mvc 中处理 javascript 注入(inject)

javascript - 如何在 JEST 中测试并行的模拟数据请求,同时以 500 毫秒的阈值模拟缓存响应

testing - Yeoman webapp 生成器 - 如何在浏览器中运行 mocha 测试

gruntjs - Karma.conf.js 不存在

node.js - 如何以编程方式调用 yeoman 生成器?

node.js - 使用remote()从GitHub复制文件并复制到目录,同时能够排除某些文件

javascript - ng-repeat 中的 Angular 多复选框数组

javascript - 在 <p> 悬停时更改 CSS3 背景图像

AngularJS - grunt 构建在 htmlmin 任务中被阻止