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

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

当我实际进入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响应。我一定有什么问题,我敢肯定整个注册表都没有损坏。

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

谢谢!

Ido Cohn asked 2020-07-10T11:44:53Z
5个解决方案
92 votes

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

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

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

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

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

Ian S Williams answered 2020-07-10T11:45:17Z
10 votes

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

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

例如:

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

有3种解决方法:

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

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

  • 托管本地代理:

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

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

解决这个问题后,我个人会选择3,然后回复到npm set registry http://registry.npmjs.org/

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

framp answered 2020-07-10T11:46:12Z
5 votes

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/

资源

Elad answered 2020-07-10T11:46:49Z
2 votes

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

它对我很好。

Akash Kumar answered 2020-07-10T11:47:13Z
1 votes
npm set registry http://85.10.209.91/

(此代理从Registry.npmjs.org获取原始数据,并处理tarball网址以解决tarball文件结构问题)。

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

Tobias Strebitzer answered 2020-07-10T11:47:38Z
translate from https://stackoverflow.com:/questions/11920571/cant-install-any-packages-in-node-js-using-npm-install