我有一个npm的问题,我不能安装任何东西。以下是错误信息:

C:\Windows\system32>npm install -g yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm ERR! network read ECONNRESET
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settin
gs.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "yo"
npm ERR! cwd C:\Windows\system32
npm ERR! node -v v0.10.17
npm ERR! npm -v 1.3.8
npm ERR! syscall read
npm ERR! code ECONNRESET
npm ERR! errno ECONNRESET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Windows\system32\npm-debug.log
npm ERR! not ok code 0

知道为什么吗?这是我的网络设置,似乎我没有配置任何代理。我还关闭了所有的防火墙。


当前回答

我最近安装了Fiddler,它(我不知道)通过127.0.0.1:8866添加了一个网络代理。我进入我的Ubuntu网络设置,点击进入“网络代理”设置,并禁用它,然后一切恢复正常。

所以一般来说,检查确保你没有因为你正在做的其他事情的副作用而设置网络代理。

其他回答

在我的例子中,我在另一个CMD中运行一个Node JS应用程序,该应用程序正在侦听端口8088。

所以当我执行任何与npm相关的命令时,它都会抛出上述错误。

在我的情况下,解决方案是:停止任何正在运行的Node JS应用程序,并重新尝试执行npm命令。安装应该成功完成,没有任何错误。

它为我解决了使用这段代码: NPM安装-g纱线

Yarn全局添加create-react-app

你可能想要检查你的NPM代理设置并删除它。

npm config get proxy
npm config rm proxy
npm config rm https-proxy

人们可能会期望一个新的NodeJS+NPM安装不会配置代理。奇怪的是,我的服务器确实定义了一个代理,指向一个IP和端口3128。删除代理起到了作用。

解决方案1:

MAC + Linux

使用sudo命令执行该命令

sudo npm install -g yo

窗户

以管理员身份运行CMD,然后再次执行该命令

解决方案2:

运行此命令,然后尝试

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

我也遇到了同样的问题,但这些解决方案都不能正确工作。最后,我通过yarn安装了包,这是npm兼容的。根据官方网站:

对大多数用户来说,从npm迁移应该是一个相当简单的过程。 纱线可以消耗相同的包装。Json格式为npm,并可以安装 来自NPM注册表的任何包。

只需要安装yarn,然后使用下面的命令运行install,相当于npm install in yarn:

yarn install

阅读更多- Yarn:从npm迁移。