无法在Node.js中使用“npm install”安装任何软件包

我是Node.js的新手,我正在阅读一些教程。 出于某种原因,我无法安装任何新的节点模块。

我正在使用: Mac OSX 10.7.4节点v。0.8.6NPM v。1.1.48

我运行npm install X,我总是得到一个

npm ERR! fetch failed https://registry.npmjs.org/-/X npm ERR! Error: 404 Not Found 

当我真的去npmjsregistry,我可以看到项目页面,但无论我打哪个tarball链接,它总是相同的:

 { "error": "not_found", "reason": "document not found" } 

例如,我尝试通过运行npm install fs来安装fs,并得到:

 npm http GET https://registry.npmjs.org/fs npm http 200 https://registry.npmjs.org/fs npm http GET https://registry.npmjs.org/-/fs-0.0.0.tgz npm http 404 https://registry.npmjs.org/-/fs-0.0.0.tgz npm ERR! fetch failed https://registry.npmjs.org/-/fs-0.0.0.tgz npm ERR! Error: 404 Not Found npm ERR! at null.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/fetch.js:47:16) npm ERR! at EventEmitter.emit (events.js:115:20) npm ERR! at WriteStream.flush (fs.js:1514:12) npm ERR! at fs.close (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:92:5) npm ERR! at Object.oncomplete (fs.js:297:15) npm ERR! If you need help, you may report this log at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! or email it to: npm ERR! <npm-@googlegroups.com> npm ERR! System Darwin 11.4.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "fs" npm ERR! cwd /Users/comocomo/Documents/workspace/nodeTest npm ERR! node -v v0.8.6 npm ERR! npm -v 1.1.48 npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Users/comocomo/Documents/workspace/nodeTest/npm-debug.log npm ERR! not ok code 0 

我试过fs,fs-extra,express和强大的,都给了我相同的404响应。 我一定有什么问题,我很确定整个registry没有被破坏。

我使用旧的registry吗? 我应该改变它在我的configuration文件? 我真的不想手动开始安装,我确定这只是一个小configuration问题。

谢谢!

我发现有一个证书过期问题:

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

所以我做了http,而不是https: –

 npm set registry http://registry.npmjs.org/ 

到目前为止没有问题。

存储库没有closures,看起来他们已经改变了他们如何托pipe文件(我猜他们已经恢复了一些旧的代码):

现在你必须在/ package-name /之前添加 –

例如:

 http://registry.npmjs.org/-/npm-1.1.48.tgz http://registry.npmjs.org/npm/-/npm-1.1.48.tgz 

有三种方法可以解决它:

  • 使用完整的镜像:
  • 使用公共代理:

    --registry http://165.225.128.50:8000

  • 主持一个本地代理:

    https://github.com/hughsk/npm-quickfix

 git clone https://github.com/hughsk/npm-quickfix.git cd npm-quickfix npm set registry http://localhost:8080/ node index.js 

我会亲自去3号,并立即恢复到npm set registry http://registry.npmjs.org/一旦这个问题得到解决。

请继续关注以获取更多信息: https : //github.com/isaacs/npm/issues/2694

Npm存储库目前正在closures。 请参阅npm github上的问题#2694

编辑
同时使用镜子:

npm set registry http://ec2-46-137-149-160.eu-west-1.compute.amazonaws.com

您可以稍后重新设置:

npm设置registryhttps://registry.npmjs.org/

资源

 npm set registry http://85.10.209.91/ 

(这个代理从registry.npmjs.org获取原始数据,并操纵tarballurl来解决tarball文件结构问题)。

其他的解决scheme似乎已经过时了。

一旦检查您的代理允许访问npm命令,也可能由于代理设置而发生此错误。

它为我工作得很好。

 $ curl https://npmjs.org/install.sh | sh 

%总计%接收%Xferd平均速度时间时间时间当前加载上传总花费左速度100 7882 100 7882 0 0 1369 0 0:00:05 0:00:05 – : – : – 1539 tar = / usr / bin / tar版本:bsdtar 2.8.3 – libarchive 2.8.3安装npm@1.1抓取: http ://registry.npmjs.org/-/npm-1.1.48.tgz tar:无法识别的归档格式tar:错误退出延迟以前的错误。 它失败了

运行curl时甚至失败https://npmjs.org/install.sh | SH