CoffeeScript中的Yeoman Generator - HookFor Warning

时间:2012-10-08 10:24:54

标签: coffeescript generator yeoman

我正在尝试使用 CoffeeScript Yeoman 开发自定义生成器,但我遇到了问题。当我在类hookFor的构造函数中使用Generator方法时,当我尝试使用Yeoman初始化项目时,我得到一个警告 hookFor必须在构造函数中使用我的定制发电机。这是index.coffee中我的生成器的代码:

path = require 'path'
util = require 'util'
yeoman = require '../../../../'
module.exports = class Generator extends yeoman.generators.Base
    constructor: ->
        super()
        @directories = ['controllers', 'helpers', 'models', 'templates', 'views']
        @hookFor 'artefact:controller', args: ['App']
    deploy: ->
        @directory '.', '.'
        @mkdir path.join 'dev', directory for directory in @directories

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

显然,错误来自 yeoman-generators / lib / base.js 文件中的 Yeoman Generators 代码。 以下是我得出这个结论的方法:

  1. 警告是由_running函数中设置为true的变量hookFor引起的(第296行)
  2. 此变量在run函数(第78行)中设置为true,之后,将迭代类Generator的方法(第81-137行)< / LI>
  3. 在CoffeeScript中为类Generator定义的构造函数在迭代期间被调用,因此调用@hookFor_runningtrue警告!
  4. 但是,不应该调用构造函数,因为在迭代期间进行了测试以防止它(第92行)

    if ( method.constructor === '-' )
    
  5. 但是,在我看来,这个测试应该是:

    if ( method === 'constructor' )
    
  6. 黑客攻击技巧。如果我错了,请随意添加评论。