阅读.npmrc文件中的代理变量,但它不起作用。尽量避免手动下载所有需要的包并安装。


当前回答

Windows系统

尝试删除代理和注册表设置(如果已经设置),并通过命令行设置环境变量

SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port

然后尝试运行NPM install。这样,你就不用在.npmrc中设置代理了,但是对于那个会话,它是可以工作的。

其他回答

你尝试过命令行选项而不是.npmrc文件吗?

我认为类似于npm——proxy http://proxy-server:8080/ install {package-name}的东西对我有用。

我还看到了以下内容: NPM配置设置代理http://proxy-server:8080/

设置npm代理

对于HTTP:

npm config set proxy http://proxy_host:port

HTTPS:

如果有HTTPS代理地址,请使用

npm config set https-proxy https://proxy.company.com:8080

否则重用HTTP代理地址

npm config set https-proxy http://proxy.company.com:8080

注意:http -proxy没有使用https作为协议,而是使用http。

Windows系统

尝试删除代理和注册表设置(如果已经设置),并通过命令行设置环境变量

SET HTTP_PROXY=http://username:password@domain:port
SET HTTPS_PROXY=http://username:password@domain:port

然后尝试运行NPM install。这样,你就不用在.npmrc中设置代理了,但是对于那个会话,它是可以工作的。

我是这样解决这个问题的:

我运行这个命令: NPM配置strict-ssl为false 然后设置npm运行http,而不是https: NPM配置注册表http://registry.npmjs.org/ 然后我使用下面的语法安装包: NPM——proxy http://username:password@cacheaddress.com.br:80安装packagename

如果代理不要求您进行身份验证,则跳过用户名:密码部分

编辑:我的一个朋友刚刚指出,你可以通过设置HTTP_PROXY和HTTPS_PROXY环境变量来让NPM在代理后工作,然后正常地发出命令NPM install express(例如)

EDIT2:正如@ bstruthers评论的那样,请记住,包含“@”的密码不会被正确解析,如果包含@,则将整个密码放在引号中

这对我来说在Windows中是有效的:

npm config set proxy http://domain%5Cuser:pass@host:port

如果您不在任何域中,请使用:

npm config set proxy http://user:pass@host:port

如果您的密码包含特殊字符,如“,@,:等,请将它们替换为URL编码值。例如“->%22,@->%40,:->%3A。%5C用于字符\。