开发Yeoman生成器模板本身的最简单方法

时间:2016-01-05 15:20:28

标签: node.js yeoman yeoman-generator

示例情况

  • 我有自己的Yeoman生成器,它有一个包含所得项目“模板”的文件夹。
  • 生成器从用户那里获取一些信息,用信息插入“模板”,然后输出一个简单的工作项目。
  • 我想确保“模板”实际工作,至少在一个积极的情况下,如果不是所有输入组合。我可以编写integration tests(它将使用一些数据运行生成器,然后尝试运行生成的代码并验证是否所有工作都按预期工作),但仍然,这有时候工作太多而且对于试错类型来说不方便发展或一些原型制作。

问题

是否有一种简单的方法如何使用“模板”本身,如何在本地手动运行或使用它,而无需在每次更改“模板”文件中的单个字母时首先运行生成器“?

也许是某种构建步骤,它会为我运行生成器并带有一些预设数据?是否有任何形式的npm模块?是否存在最佳实践?

2 个答案:

答案 0 :(得分:0)

运行集成测试后,您可以在生成的项目文件夹中生成一些命令,看看它们是否正常传递。

答案 1 :(得分:0)

到目前为止,我找到的最佳解决方案是创建一个脚本,其中包括:

  1. 创建临时沙箱目录。
  2. 执行npm link
  3. 更改PATH,以便包含本地.bin的{​​{1}}(这是为了防止本地安装的Yeoman优先于全局的{0}}当脚本运行时,例如node_modules)。
  4. 将环境值npm run develop设置为真实的。
  5. 在沙箱目录中运行NON_INTERACTIVE
  6. 在沙箱目录中运行yo <your generator>以运行新生成的服务器代码。
  7. 更改您的生成器,以便在npm start真实的情况下,无需默认值即可自动为所需提示提供一些虚拟默认值。

    然后将脚本运行为:

    process.env.NON_INTERACTIVE

    它很慢,但它有效。通过这种方式,您可以自己开发模板,并在每次需要尝试时避免填充生成器。