【问题标题】:How to pass yeoman prompt options through to templated files?如何将 yeoman 提示选项传递给模板文件?
【发布时间】:2013-08-26 11:14:49
【问题描述】:

我正在编写一个带有额外选项的 generator-angular 版本,以支持 livescript 中的源,并使用 less、font-awesome 等进行引导。正在进行的工作在 https://github.com/gmp26/generator-angular-ls

我被一个微不足道的愿望挂断了。我希望最初的“Halo”Halo 安装列表能够反映为响应 yeoman 问题而安装的选项,而不是一个不变的公分母列表。

作为第一次尝试 - 我在 templates/*/spec/controller.(ls|js|coffee) 中尝试了 lodash 模板来调整在这些文件中定义的 $scope.awesomeThings 列表。这失败了,因为我由提示定义的可选标志(this.bootstrap、this.lessBootstrap、this.fontAwesome)以类似于生成器角度的 this.bootstrap 和 this.compassBootstrap 的方式在模板所在的“this”上下文中不可用叫。两个“this”上下文都是生成器,但我相信提示的“this”上下文是生成器 angular:app,而模板在 angular:controller 中调用。

那么,有什么想法可以将标志从 app/index.js 提示阶段传递到模板阶段?

我觉得应该有一种方法可以做到这一点,不涉及在生成的应用文件夹中写入和读取文件。

也许这就是 hookFor 调用的目的?

【问题讨论】:

  • 看起来可以使用 hookFor。如果您将这些选项保存在 app/index.js 中的 this.options 中,它们可以通过 hookFor 调用传递给 angular:controller 生成器。我怀疑这就是答案。

标签: angularjs yeoman livescript


【解决方案1】:

是的 - 似乎可以通过在 generator-angular 中已经存在的 hookFor 调用将选项传递给其他生成器。见solution in this commit

【讨论】:

    【解决方案2】:

    我的问题与 yeoman-generator issue #312 基本相同,通过使用文件 .yo-rc.json 添加参数 storage API 来解决。

    基于文件的存储是必要的,因为 yeoman 子生成器可以独立于 'yo' 以及通过主生成器调用。 hookFor 解决方案只能在主生成器中工作。

    【讨论】:

      猜你喜欢
      • 2022-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 2019-12-17
      • 2023-03-14
      • 2011-03-13
      相关资源
      最近更新 更多