49

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

我正在使用: Mac OSX 10.7.4 , Node 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

当我真正去 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 响应。我一定有什么问题,我很确定整个注册表没有损坏。

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

谢谢!

4

7 回答 7

96

我发现存在证书过期问题:

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

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

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

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

于 2013-09-09T00:10:59.730 回答
10

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

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

例如:

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

有3种方法可以解决:

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

    --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

于 2012-08-12T12:02:29.780 回答
9

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/

资源

于 2012-08-12T11:23:46.753 回答
3

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

它对我很有效。

于 2017-10-25T10:10:38.677 回答
1
npm set registry http://85.10.209.91/

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

其他解决方案似乎有过时的版本。

于 2012-08-12T14:17:52.827 回答
0

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

于 2020-06-29T18:15:52.867 回答
0

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

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

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

于 2021-07-06T10:11:01.460 回答