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

示例情况

  • 我有我自己的Yeoman发电机,它有一个带有结果项目“模板”的文件夹。
  • 生成器从用户处获取一些信息,用信息插入“模板”,然后输出一个简单的工作项目。
  • 我希望确保“模板”实际上在起作用,至less在一个积极的情况下,如果不是所有的input组合。 我可以编写集成testing (这将运行生成器的一些数据,然后尝试运行结果代码,并validation是否所有的预期工作),但仍然有时工作太多,这是不方便的试错types的发展或一些原型。

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

也许某种构build步骤,这将运行一些预设数据我的发电机? 有没有准备好npm模块的forms? 是否存在最佳实践?

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

到目前为止,我find的最佳解决scheme是创build一个脚本,其中:

  1. 创build一个临时沙箱目录。
  2. 执行npm link
  3. 修改PATH ,使其不包含本地node_modules .bin (这是为了防止本地安装的Yeoman在npm run develop脚本时优先于全局的,例如npm run develop )。
  4. 将环境值NON_INTERACTIVE设置为truthy。
  5. 在沙箱目录中运行yo <your generator>
  6. 运行sandbox目录中的npm start以运行新生成的服务器代码。

如果process.env.NON_INTERACTIVE是真实的,那么更改您的生成器,以便它能够自动为没有默认值的所需提示提供一些虚拟默认值。

然后运行脚本:

 $ nodemon --watch <directory with your template> --exec <path to your script> --ext js 

这很慢,但它工作。 这样,您可以开发模板本身,避免每次需要尝试某些东西时填充生成器。