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

时间:2012-08-12 07:49:38

标签: node.js npm

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

我正在使用: Mac OSX 10.7.4 节点v.8.6.6 NPM v.1.1.48

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

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

当我真正进入npmjs注册表时,我可以看到项目页面,但无论我点击哪个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响应。 我一定有些不对劲,我很确定整个注册表都没有被破坏。

我使用旧的注册表吗?我应该在配置文件中更改它吗?老实说,我宁愿不要手动开始安装,我相信这只是一个小配置问题。

谢谢!

7 个答案:

答案 0 :(得分:91)

我发现证书过期问题:

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

所以我把它设为http,而不是https: -

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

到目前为止没有任何问题。

答案 1 :(得分:10)

存储库没有关闭,看起来他们已经改变了他们托管文件的方式(我猜他们已经恢复了一些旧代码):

现在你必须在 -

之前添加/ 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

答案 2 :(得分:4)

Npm存储库目前已关闭。 请参阅npm github上的问题#2694

修改
同时使用镜子:

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

您可以稍后重置:

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

source

答案 3 :(得分:1)

npm set registry http://85.10.209.91/

(此代理从registry.npmjs.org获取原始数据并操纵tarball URL来修复tarball文件结构问题。)

其他解决方案似乎已经过时了。

答案 4 :(得分:1)

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

它很适合我。

答案 5 :(得分:0)

如果您碰巧在 Windows 上运行npm install命令,请首先确保使用管理权限打开命令提示符。这就是为我解决问题的原因。

答案 6 :(得分:0)

在安全设置下检查 允许从以下位置下载的应用:

  • App Store 和其他已确定的开发者

这是我最近面临的原因之一。