运行yo生成器后出现错误“未处理”错误'事件'

时间:2016-05-12 17:28:55

标签: javascript node.js yeoman yeoman-generator

我正在尝试使用generatos的发生器,发电机 - 发电机,我正面临一个错误。

henrique@liberato:~/Documents$ yo generator
? Your generator name (generator-documents) 

events.js:154
      throw er; // Unhandled 'error' event
      ^

TypeError: this.env.adapter.prompt(...).then is not a function
    at Base.prompt (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/yeoman-generator/lib/base.js:232:45)
    at askName (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/inquirer-npm-name/lib/index.js:25:19)
    at module.exports.generators.Base.extend.prompting (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/app/index.js:21:12)
    at Object.<anonymous> (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/yeoman-generator/lib/base.js:431:23)
    at /home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/run-async/index.js:26:25
    at /home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/run-async/index.js:25:19
    at /home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/yeoman-generator/lib/base.js:432:9
    at processImmediate [as _immediateCallback] (timers.js:383:17)

版本:

henrique@liberato:~/Documents$ node -v
v5.8.0
henrique@liberato:~/Documents$ npm -version
3.8.9

我已经做过npm cache clean和npm install -g yo / yeoman-generator / generator-generator。已经重新安装节点和npm。

感谢您的时间:)

3 个答案:

答案 0 :(得分:11)

您需要将yo更新为最新版本。

npm -g update yo

如果这不起作用,那么你想要:

npm -g uninstall yo
npm -g install yo

答案 1 :(得分:1)

我有类似的问题。但是,更新或重新安装哟并没有帮助我。

我的节点环境由nvm管理,我目前正在使用节点v6.2.0。但是,当我使用节点v4.4.1时,很久以前就已经安装了我的电脑。当我使用v4.4.1时,我没有得到错误。

因此,结论是yo angular-fullstack命令在安装它的同一节点版本中工作。由于nvm在节点版本之间切换很方便,对我来说这不是什么大问题。我只在生成一些角度组件时使用v4.4.1,然后切换回最新版本。

答案 2 :(得分:0)

我也有这个问题。 我也使用nvm来管理我的节点版本。

就我而言,before_action :correct_user?, only: [:edit, :update, :delete] ... private def can_edit_blog? current_user.admin? || current_user.editor? end def correct_user @blog = current_user.blogs.find_by(id: params[:id]) if @blog.nil? or not can_edit_blog? redirect_to root_url end end npm dedupe -gnpm update -g yonpm uninstall -g yo的某种组合可以解决问题。 我还从我的生成器重新npm install -g yo,因为它是一个本地生成器。我认为如果它是你从npm安装的生成器,npm link后跟`npm install -g将起到同样的作用。

在所有这些过程中,发电机再次开始工作,但我没有注意到什么时候,因为我在运行发电机作为我的单元测试的一部分。

最后,我意识到当我从命令行运行它时,生成器正在工作,但是当我从我的测试文件中运行它时却没有。

此时,将yeoman's test helpersnpm uninstall -g <generator-name>)从npm update yeoman-test更新为1.1.0就可以了。