NPM无法在代理后安装任何软件包

6

我使用的是企业代理,当我执行 npm i -g npm 命令来更新我的 npm 时,出现了如下反应:

npm ERR! code EPROTO
npm ERR! errno EPROTO
npm ERR! request to http://registry.npmjs.org/npm failed, reason: write EPROTO 101057795:error:140770FC:SLL routines:SSL23_GET_SERVER_HELLO:unknow protocol:openssl/ssl/s23_clnt.c:825:
npm ERR!

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\username\AppData\Moaming\npm-cache\_logs\2018-01-23T08_15_17_061Z-debug.log

这里是npm配置文件:

proxy=http://proxy.###.intra:8080/
https-proxy=https://proxy.###.intra:8080/
registry=http://registry.npmjs.org/

任何帮助都将不胜感激:)
谢谢。
3个回答

6

您也可以使用命令行添加代理:

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8181
npm config set registry https://registry.npmjs.org/

您可以通过以下方式检查设置:

npm config ls -l | grep prox

有时候,SSL 也会出现问题,您可以运行以下命令进行解决:
npm config set strict-ssl false

检查您的代理端口,HTTP和HTTPS代理端口应该不同。


是的,我看到了,"npm config ls -l | grep prox" 的输出是什么? - I. Ahmed
https-proxy=https://proxy.company.intra:8080 proxy=http://proxy.company.intra:8080 ;https-proxy = null (被覆盖) ;proxy= null (被覆盖) - Maxime Chevallier
你能检查一下你的https代理端口吗?你的http和https代理端口需要不同。 - I. Ahmed
不,我发现我的公司更改了代理的URL。我已经更改了它,现在HTTP在80端口,HTTPS在443端口,但仍然无法工作。 :/ - Maxime Chevallier
与原始问题相同。 - Maxime Chevallier

0

这种错误可能是由于您使用的网络代理引起的。即使您将代理设置添加到计算机中,也不足以使用npm工作。因此,您必须手动配置代理设置才能使用npm。

npm config set proxy http://username:password@proxy_name:port

这里的用户名是您用于连接网络的用户名,密码是其密码。代理名称是您在电脑上使用的代理或连接的名称。端口是您电脑上运行代理的端口,例如8080。


-2

真正的问题在于创建包含../的符号链接

在命令行中添加以下内容以更新您的npm配置:

npm config set bin-links false

这是非常糟糕的建议。 这将禁用npm在/node_modules文件夹中创建.bin文件夹。这将防止您从命令行运行npm包。 这与代理没有任何关系。 - prespic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接