我正在尝试使用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。
感谢您的时间:)
答案 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 -g
,npm update -g yo
和npm uninstall -g yo
的某种组合可以解决问题。
我还从我的生成器重新npm install -g yo
,因为它是一个本地生成器。我认为如果它是你从npm安装的生成器,npm link
后跟`npm install -g将起到同样的作用。
在所有这些过程中,发电机再次开始工作,但我没有注意到什么时候,因为我在运行发电机作为我的单元测试的一部分。
最后,我意识到当我从命令行运行它时,生成器正在工作,但是当我从我的测试文件中运行它时却没有。
此时,将yeoman's test helpers(npm uninstall -g <generator-name>
)从npm update yeoman-test
更新为1.1.0
就可以了。