无法在Node.js中使用“npm install”安装任何软件包
我是Node.js的新手,我正在阅读一些教程。 出于某种原因,我无法安装任何新的节点模块。
我正在使用: Mac OSX 10.7.4 , 节点v。0.8.6 , NPM 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