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

时间:2018-01-23 08:24:38

标签: npm proxy

我支持业务代理,当我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 config:

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

任何帮助都会受到赞赏:)

感谢。

3 个答案:

答案 0 :(得分:1)

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

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代理端口应该不同。

答案 1 :(得分:0)

真正的问题是创建包含../

的符号链接

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

npm config set bin-links false

答案 2 :(得分:0)

由于用于网络的代理,可能会发生这种错误。即使您将代理设置添加到PC上,也不足以使用npm。因此,您必须手动配置代理设置才能使用npm。

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

此处用户名是用于连接网络的用户名,而密码是其密码。代理名称是您在PC中使用的代理或连接的名称。端口是PC中的代理运行端口,例如8080。