运行 生成器后错误 "Unhandled 'error' event"

Error "Unhandled 'error' event" after running yo generator

我正在尝试使用 generatos 的生成器,generator-generator,但遇到错误。

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。

感谢您的宝贵时间:)

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

npm -g update yo

如果这不起作用,那么您需要:

npm -g uninstall yo
npm -g install yo

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

我的node环境由nvm管理,我目前使用的是node v6.2.0。然而,yo 是很久以前在我使用 node v4.4.1 时安装在我的电脑上的。当我使用 v4.4.1 时,我没有得到错误。

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

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

在我的例子中,npm dedupe -gnpm update -g yonpm uninstall -g yonpm install -g yo 的某种组合达到了目的。 我还重新 运行 npm link 从我的生成器,因为它是一个本地生成器。我认为如果它是你从 npm 安装的生成器,npm uninstall -g <generator-name> 后跟 `npm install -g 将起到同样的作用。

在所有这一切的某个时候,生成器再次开始工作,但我没有注意到确切的时间,因为我是 运行 生成器作为我单元测试的一部分。

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

那时,将 yeoman's test helpers (npm update yeoman-test) 从 1.1.0 更新为 1.4.0 就成功了。