Node.js yo hubot命令后出现npm协议错误

Node.js yo hubot命令后出现npm协议错误,node.js,npm,Node.js,Npm,我已经做了大约一天了。我通过vagrant在虚拟机上运行ubuntu/trusty64。每次我尝试用yo-hubot命令构建一个新的hubot项目时,都会安装hubot,但会出现npm错误。我真的搞不懂问题出在哪里 我通过shell安装了node、npm、hubot和coffee脚本。下面是我的provision.sh脚本的样子 #!/bin/bash # update package libraries apt-get -y update # install curl if it is n

我已经做了大约一天了。我通过vagrant在虚拟机上运行ubuntu/trusty64。每次我尝试用yo-hubot命令构建一个新的hubot项目时,都会安装hubot,但会出现npm错误。我真的搞不懂问题出在哪里

我通过shell安装了node、npm、hubot和coffee脚本。下面是我的provision.sh脚本的样子

#!/bin/bash

# update package libraries
apt-get -y update

# install curl if it is not already installed
apt-get -y  install curl

# if nodejs is not installed...
type node >/dev/null 2>&1 || if [[ $? != 0 ]]; then
    # we install it
    curl -sL http://deb.nodesource.com/setup_5.x | sudo -E bash -
    apt-get -y install nodejs

    # update npm
    npm install -g npm

fi

command -v hubot &>/dev/null || {
    npm install -g hubot coffee-script
}

# install yeoman for hubot
command -v yo &>/dev/null || {
    npm install -g yo generator-hubot
}
安装的nodejs版本是v5.11.1 安装的npm版本是v3.8.6

安装完成后,下一步是脚手架hubot。这是通过创建一个新目录来完成的。我将目录命名为myhubot。当我切换到目录并键入命令:Yo hubot--default时,它开始安装,但以以下错误结束:

13519 error Linux 3.13.0-86-generic
13520 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "hubot" "hubot-scripts" "hubot-diagnostics" "hubot-help" "hubot-heroku-keepalive" "hubot-google-images" "hubot-google-translate" "hubot-pugme" "hubot-maps" "hubot-redis-brain" "hubot-rules" "hubot-shipit" "--save"
13521 error node v5.11.1
13522 error npm  v3.8.6
13523 error path ../coffee-script/bin/coffee
13524 error code EPROTO
13525 error errno -71
13526 error syscall symlink
13527 error EPROTO: protocol error, symlink '../coffee-script/bin/coffee' -> '/vagrant/myhubot/node_modules/.bin/coffee'
13528 error If you need help, you may report this error at:
13528 error     <https://github.com/npm/npm/issues>
13529 verbose exit [ -71, true ]
13519错误Linux 3.13.0-86-generic
13520错误argv“/usr/bin/nodejs”“/usr/bin/npm”“安装”“hubot”“hubot脚本”“hubot诊断”“hubot帮助”“hubot heroku keepalive”“hubot google图像”“hubot google翻译”“hubot pugme”“hubot地图”“hubot redis brain”“hubot规则”“hubot shipit”“--保存”
13521错误节点v5.11.1
13522错误npm v3.8.6
13523错误路径../coffee脚本/bin/coffee
13524错误代码EPROTO
13525错误错误号-71
13526错误系统调用符号链接
13527错误EPROTO:协议错误,符号链接“../coffee script/bin/coffee”->”/vagrant/myhubot/node_modules/.bin/coffee”
13528错误如果您需要帮助,可以在以下位置报告此错误:
13528错误
13529详细退出[-71,真]
显然,即使在错误日志之后,如果键入“hubot”命令,我也会被记录 进入hubot外壳。但是,当我打呼伯特时,我没有得到回复

是完整的npm调试日志

我相信这张图片也会有帮助。提前感谢。

出现此错误是因为
npm
命令需要符号链接,并且此问题中引用的Windows不支持此命令:

您可以按照本文中概述的步骤解决此问题:

这些步骤是:

在您的文件中添加一个代码片段以启用符号链接:

config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
以管理员模式启动流浪者机器

这是为了规避Vagrant对符号链接的限制。

发生此错误的原因是
npm
命令需要符号链接,并且此问题中引用的Windows不支持此命令:

您可以按照本文中概述的步骤解决此问题:

这些步骤是:

在您的文件中添加一个代码片段以启用符号链接:

config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
以管理员模式启动流浪者机器

这是为了规避Vagrant对符号链接的限制。

请提供您发出的命令以及您在问题中遇到的错误(而不是通过指向某些临时资源的链接)。也许一些版本信息也会有所帮助。@mklu谢谢您的建议。我现在对这个问题补充了更多的细节。我希望这对任何想提供帮助的人都有帮助。请提供您发出的命令以及您在问题中遇到的错误(不要通过指向某个临时资源的链接)。也许一些版本信息也会有所帮助。@mklu谢谢您的建议。我现在对这个问题补充了更多的细节。我希望这对任何想帮忙的人都有帮助。太好了。工作起来很有魅力。显然,你指给我的要点是:建议——没有垃圾箱链接。但是,正如我所想的那样,没有一个bin链接不适用于某些工具;使其成为不太理想的解决方案。我认为绕过流浪汉对符号的限制是更好的解决办法。但如果我可以问一下,既然rsync不使用符号链接,那么它也可能是一个修复方案吗?它可能。困难在于它与工具(yeoman)的集成。非常好。工作起来很有魅力。显然,你指给我的要点是:建议——没有垃圾箱链接。但是,正如我所想的那样,没有一个bin链接不适用于某些工具;使其成为不太理想的解决方案。我认为绕过流浪汉对符号的限制是更好的解决办法。但如果我可以问一下,既然rsync不使用符号链接,那么它也可能是一个修复方案吗?它可能。困难在于它与工具的集成(yeoman)。