【问题标题】:Yeoman/Yo: Where does Yo scaffolding pickup the name of the Angular module?Yeoman/Yo:Yo 脚手架在哪里获取 Angular 模块的名称?
【发布时间】:2013-06-18 11:51:50
【问题描述】:

我使用特定的模块名称创建了我的 Angular 应用程序,现在我决定更改它。

所以当我这样做时

yo angular:controller myController 

它创造

angular.module('MyTestModule')

Yo 在哪里找这个,无论如何要更新它??

谢谢

【问题讨论】:

    标签: angularjs yeoman


    【解决方案1】:

    在当前版本(Yeoman 1.0.4,generator-angular 0.4.0)中,名称似乎取自文件 bower.json 中的 "name" 属性。

    【讨论】:

    • Holymoly 非常感谢您!我不知道为什么文件夹查找在 Sublime Text 中无法发现这一点!
    • 另请注意,它会像这样转换名称:"test" -> "testApp", "testForm" -> "testFormApp", "test-form" -> "testFormApp" 恕我直言,它并不那么明显。
    • 请注意,在同一个文件bower.json 中,您还拥有moduleName 属性。我都改了。
    【解决方案2】:

    在您上面的描述中,“控制器 myController”中有一个额外的“l”,这将默认导致 yeoman(或 yo)创建一个完整的角度部署,而不仅仅是控制器。在任何情况下,它都会从您的部署目录中获取该名称的一部分。举个例子,我这​​样做了:

    mkdir yotest
    cd yotest
    npm install -g yo grunt-cli bower generator-angular
    yo angular:controller myController
    vi app/scripts/controllers/myController.js
    

    并注意我的控制器模块的名称:

    ...
    angular.module('yotestApp') 
    ...
    

    【讨论】:

    • 是的,这是一个错字,抱歉。啊好的..所以它只有目录。谢谢。
    • 我的荣幸。实际上,我发现它使用目录名称有点烦人,因为有时该名称会在各种部署策略中为我更改,但鉴于 yo 应该是非常自动化的,采用一般最佳实践 & 所有,它仍然有很高的收益损失比:)
    • 您好 Hoonto,实际上只是做了一些测试而不是目录,您必须在 component.json 中编辑名称
    • 啊component.json - 好多了,谢谢你马丁!我认为,如果您找到了自己问题的答案,您可以提供它然后接受它,对吗?几个月前,我实际上决定使用 yeoman 在应用程序上构建我的结构,然后我自己接管了 grunt,因为我对这方面感到恼火(还需要更多地控制其他一些事情)。但我认为这是一件值得知道的事情,其他人可能也想知道。
    • 我的猜测是 bower.json 从根目录获取其“名称”属性,但是一旦 bower.json 到位,您就可以对其进行编辑,并让您的脚手架反映这些更改。
    【解决方案3】:

    根据我的经验(我不使用 bower,然后系统地删除所有关于它的文件),Yo 从主文件夹中提取主模块的名称。

    关于'App'后缀,根据这个提交https://github.com/yeoman/generator-angular/commit/09f0f7b3a8c3264b7527bc9fed8c709becec99eb,可以在运行yo angular命令时使用--app-suffix="foobar"修改:

    yo angular foobar --app-suffix=""
    yo angular:controller myCtrl --app-suffix="" 
    

    将创建:

    • 一个名为foobar的模块
    • 控制器:foobar.myCtrl

    但我不知道如何将此选项设置为默认行为。我不认为这是可能的。

    【讨论】:

      【解决方案4】:

      感谢大家的帮助。经过一番调查,名称似乎取自component.json,编辑此文件意味着功能脚手架将采用新名称。

      【讨论】:

      • 刚刚检查过。正确答案是 bower.json 中的“名称”属性。您应该考虑更改接受的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 2011-10-17
      • 1970-01-01
      • 2013-11-06
      相关资源
      最近更新 更多