我正在尝试使用 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
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
显然,错误来自 yeoman-generators / lib / base.js 文件中的 Yeoman Generators 代码。 以下是我得出这个结论的方法:
_running
函数中设置为true
的变量hookFor
引起的(第296行) run
函数(第78行)中设置为true,之后,将迭代类Generator
的方法(第81-137行)< / LI>
Generator
定义的构造函数在迭代期间被调用,因此调用@hookFor
而_running
为true
:警告! 但是,不应该调用构造函数,因为在迭代期间进行了测试以防止它(第92行):
if ( method.constructor === '-' )
但是,在我看来,这个测试应该是:
if ( method === 'constructor' )
黑客攻击技巧。如果我错了,请随意添加评论。