我是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响应。 我一定有些不对劲,我很确定整个注册表都没有被破坏。
我使用旧的注册表吗?我应该在配置文件中更改它吗?老实说,我宁愿不要手动开始安装,我相信这只是一个小配置问题。
谢谢!
答案 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/
答案 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)
在安全设置下检查 允许从以下位置下载的应用:
这是我最近面临的原因之一。