Vagrant环境安装JShint报错

Error in installing JShint in Vagrant environment

大家好:

我在通过我的 Vagrant 环境安装 JShint 和 CSS Linter 时遇到了这些错误。我在 Windows 中使用 Vagrant,Ubuntu 在我的 vagrant box 上。

我已经安装了 npm 和 nodejs,尝试了很多更新方式但没有成功。

也许其他人可以提供帮助。

这里是错误。

vagrant@precise32:~$ npm install jshint

vagrant@precise32:~$ npm install jshint
npm http GET https://registry.npmjs.org/jshint

npm ERR! Error: failed to fetch from registry: jshint
npm ERR! at /usr/share/npm/lib/utils/npm-registry-client/get.js:139:12
npm ERR! at cb (/usr/share/npm/lib/utils/npm-registry-cient/request.js:31:9)
npm ERR! at Request._callback (/usr/share/npm/lib/utils/npm-registry-client/request.js:136:
npm ERR! at Request.callback (/usr/lib/nodejs/request/main.js:119:22)
npm ERR! at Request.<anonymous> (/usr/lib/nodejs/request/main.js:212:58)
npm ERR! at Request.emit (events.js:88:20)
npm ERR! at ClientRequest.<anonymous (/usr/lib/nodejs/request/main.js:412:12)
npm ERR! at ClientRequest.emit (events.js:67:17)
npm ERR! at HTTPParser.onIncoming (http.js:1261:11)
npm ERR! at HTTPParser.onHeadersComplete (http.js:102:31)
npm ERR! You may report this log at:
npm ERR! <http://bugs.debian.org/npm>
npm ERR! or use npm ERR!reportbug --attach /home/vagrant/npm-debug.log npm
npm ERR! npm ERR! System Linux 3.2.0-23-generic-pae
npm ERR! command "node" "/usr/bin/npm" "install" "jshint"
npm ERR! cwd /home/vagrant
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! message failed to fetch from registry: jshint
npm ERR! Additional logging details can be found in:
npm ERR! /home/vagrant/npm-debug.log

npm 不正常

请回复您的 npm --versionnode --version。我怀疑数据不足 npm/nodejs 库。

在任何一种情况下,试试这个:

npm config set registry https://registry.npmjs.org/

已在此处关闭错误:https://github.com/npm/npm/issues/2119

编辑: 也许这是 Windows 主机到 Ubuntu 虚拟机的问题:

https://github.com/npm/npm/issues/7308

  1. npm install jshint --no-bin-link 如果它安装了,那么你的文件系统不支持链接,每次你 运行 npm install,你都需要附加这个标志。如果使用此标志,则无法使用 npm install -g 标志进行全局安装。
  2. npm 可能无法检测到您的主机文件系统,因为 npm 在 Ubuntu VM 上 运行。您需要在 Vagrantfile 中的 Windows 主机上允许符号链接:

    config.vm.provider "virtualbox" do |v|
        v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
    end
    
  3. 如果你只想绕过 Vagrantfile 的设置并且不安装全局二进制文件(-g 标志),我强烈建议不要这样做,那么为你的 npm install --no-bin-links 添加别名:

    echo "alias npm='npm --no-bin-links'" >> /home/vagrant/.bashrc