节点 NPM 代理身份验证 - 我如何配置它?

Posted

技术标签:

【中文标题】节点 NPM 代理身份验证 - 我如何配置它?【英文标题】:Node NPM proxy authentication - how do I configure it? 【发布时间】:2017-03-03 11:42:48 【问题描述】:

我是 Node 新手,正在尝试使用以下命令安装 TypeScript:

npm install -g typescript

我收到以下错误:

if you are behind a proxy, please make sure that the 'proxy' config is set properly.

我已使用以下命令设置代理:

npm config set proxy http://Username:Pa55w0rd@proxyhostname
npm config set https-proxy http://Username:Pa55w0rd@proxyhostname

也试过了:

npm config set proxy http://"ninjadev:5trongP@ssw0rd"@proxy.some-bigcorp.com
npm config set https-proxy http://"ninjadev:5trongP@ssw0rd"@proxy.some-bigcorp.com

但它们都不起作用。我在一个带有身份验证的 copmpany 代理后面工作,所以我认为这阻止了我连接。我已经添加了我的用户名和密码,这也没有用。

有人知道如何在使用公司代理和身份验证的同时连接到 npm 吗?

谢谢

【问题讨论】:

使用这个solution。它对我有用。 确保将密码中的@ 编码为%40。否则它可能会认为ninjadev:5trongP 是用户/通行证,ssw0rd"@proxy.some-bigcorp.com(或类似的东西)将是主机。 【参考方案1】:

你试过了吗

npm config set proxy http://"ninjadev:5trongP@ssw0rd"@proxy.some-bigcorp.com:PORT
npm config set https-proxy http://"ninjadev:5trongP@ssw0rd"@proxy.some-bigcorp.com:PORT

如果您没有代理端口,那么 PORT 可以是 8080 吗?

【讨论】:

注意不能解析包含@的密码。 @FaizanMubasher 对于带有@ 或其他有意义的特殊字符的密码,将它们替换为encodeURIComponent 版本。例如,@ 变为 %40【参考方案2】:

这对我有用:

npm config set https-proxy "ninjadev:5trongP@ssw0rd"@proxy.some-bigcorp.com:PORT

之前没有http/https

【讨论】:

也为我工作,应该标记为答案,nicedone @Supersharp【参考方案3】:

以下代码对我有用:

npm config set proxy "http://"username:password"@proxy.big-corp.com"

【讨论】:

【参考方案4】:

这件事对我有用:

npm config set proxy http://"ninjadev:5trongP@ssw0rd"@proxy.some-bigcorp.com:PORT

以管理员身份打开cmd 并在此处输入命令。使用为您的用户提供的凭据修改命令。

【讨论】:

【参考方案5】:

在 ubuntu-18.04 中确保在主目录 .npmrc 文件中包含:

proxy=http://username:password@proxyhostname:port

https-proxy=http://username:password@proxyhostname:port

【讨论】:

点评来源: 嗨,这篇文章似乎没有为问题提供quality answer。请编辑您的答案并改进它,或者将其作为评论发布。

以上是关于节点 NPM 代理身份验证 - 我如何配置它?的主要内容,如果未能解决你的问题,请参考以下文章

NuxtJS 身份验证代理

如何通过具有身份验证的代理访问 TFS 服务器?

AJAX 访问代理提供的基本身份验证后的节点 API

如何使用 wininet.dll 对代理进行身份验证?

node.js 中的代理身份验证与模块请求

在 web.config 中设置具有身份验证的代理以访问 Internet