【问题标题】:The easiest way to develop the Yeoman generator's template itself开发 Yeoman 生成器模板本身的最简单方法
【发布时间】:2016-01-05 15:20:27
【问题描述】:

示例情况

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

问题

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

也许是某种构建步骤,它会使用一些预设数据为我运行生成器? npm 模块的形式有什么准备好的吗?是否存在最佳实践?

【问题讨论】:

    标签: node.js yeoman yeoman-generator


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      到目前为止,我发现的最佳解决方案是创建一个脚本,该脚本:

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

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

      然后将脚本运行为:

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

      它很慢,但它有效。这样您就可以自行开发模板,避免每次需要尝试某些东西时都填充生成器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-16
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        相关资源
        最近更新 更多