在公司代理.pac后面使用npm

node.js Node.js

猪猪村村

2020-03-24

我需要通过npm下载几个软件包,但我们的公司代理配置是.pac文件(我在Windows上)

我已经尝试过

npm config set proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac
npm config set https-proxy http://mydomain\username:password@1.2.3.4:8181/proxy.pac

要么

npm config set proxy http://1.2.3.4:8181/proxy.pac
npm config set https-proxy http://1.2.3.4:8181/proxy.pac

但这行不通...

有什么建议吗?谢谢

第3703篇《在公司代理.pac后面使用npm》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

21个回答
Gil小哥伽罗 2020.03.24

通过谷歌的一点搜索,我尝试的第一件事是

npm config set registry http://registry.npmjs.org/
npm config set proxy "your proxy"
npm config set https-proxy "your proxy"

但是,当尝试执行“ npm install”时,npm似乎仍然失去连接。然后我在命令提示符下运行了这一行,现在我可以使用npm install

set NODE_TLS_REJECT_UNAUTHORIZED=0
老丝飞云 2020.03.24

由于我仍然无法在工作中设置代理设置并在家中关闭代理设置,因此我编写了脚本并发布了npm-corpo-proxy.sh在每个corpo中,密码都必须经常更改,并且必须包含特殊字符,必须在馈送npm config之前对它们进行编码(对于backash形式domain \ user而言,该字符相同)。

Itachi猪猪猪猪 2020.03.24

我遇到类似的问题,发现我的npm配置文件(.npmrc)的注册表项错误。注释掉它,然后重新运行npm install。有效。

泡芙 2020.03.24

我无法使其与CNTLM一起使用。我尝试遵循上面发布的所有信息,但是代理仍然未授权连接。使用Fiddler,您只需要安装它并选中“自动身份验证”选项。但是要工作,我必须从用户文件夹中删除.npmrc文件,并按以下指示使用以下值设置环境变量

set npm_config_https-proxy="http://127.0.0.1:8888"

set npm_config_registry="http://registry.npmjs.org/"
宝儿 2020.03.24

作业系统:Windows 7

对我有用的步骤:

  1. npm config get proxy
  2. npm config get https-proxy

  3. 注释:我执行此命令以了解我的代理设置
    npm config rm proxy

  4. npm config rm https-proxy
  5. npm config set registry=http://registry.npmjs.org/
  6. npm install
2020.03.24

在.typingsrc文件中添加以下几行对我有帮助。

{
    "rejectUnauthorized": false,
    "registryURL" :"http://api.typings.org/"
 }
null 2020.03.24

公认的答案中提到NPM代理设置解决了该问题,但是正如您在npm问题中所看到的那样,某些依赖项使用GIT,这使得需要进行git代理设置,可以按照以下步骤进行操作:

git config --global http.proxy http://username:password@host:port
git config --global https.proxy http://username:password@host:port

NPM代理设置提到:

npm config set proxy "http://username:password@host:port"
npm config set https-proxy "http://username:password@host:port"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"
小胖阳光 2020.03.24

试试这个,这是唯一对我有用的方法:

npm --proxy http://:@proxyhost:--https-proxy http://:@proxyhost:--strict-ssl错误安装-g软件包

注意选项--strict-ssl false

祝好运。

神乐 2020.03.24

只需在您的项目文件夹中创建一个名为.npmrc的文件,它将避免在系统级别进行代理设置

#Without password
proxy=http://ipaddress:80
https-proxy=http://ipaddress:80

#With password
proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

如果您不使用代理,请这样评论

#proxy=http://ipaddress:80
#https-proxy=http://ipaddress:80

#With password
#proxy=http://<username>:<pass>@proxyhost:<port>
#https-proxy=http://<uname>:<pass>@proxyhost:<port>
米亚 2020.03.24

在工作中,我们使用ZScaler作为代理。我能够使npm正常工作的唯一方法是使用Cntlm

看到这个答案:

NTLM代理背后的NPM

小宇宙Near 2020.03.24

试试这个,如下所示在npm中设置代理

npm config set proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set https-proxy "http://<user-name>:<password>@<proxy-url>:<port>"
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"
番长GO 2020.03.24

如果您位于具有代理服务器的公司网络后面,那么我只是使用了ntlm代理工具,并使用了ntlm提供的端口和代理,因此我使用了以下配置:

strict-ssl=false
proxy=http://localhost:3125

我希望这有帮助。

Jim米亚 2020.03.24

您将从服务器管理员或支持人员那里获得代理主机和端口。

在那之后设置

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

如果密码中有任何特殊字符,请尝试使用%urlencode。例如:-英镑(哈希)替换为%23。

这对我有用...

斯丁逆天A 2020.03.24

您必须使用“ npm config set http-proxy

采用:

npm config set http-proxy http://1.2.3.4:8181
npm config set https-proxy http://1.2.3.4:8181
卡卡西 2020.03.24

在cmd或GIT Bash或其他提示下使用以下命令

$ npm config set proxy "http://192.168.1.101:4128"

$ npm config set https-proxy "http://192.168.1.101:4128"

其中192.168.1.101是代理ip,而4128是端口。根据您的代理设置进行更改。

TomSam 2020.03.24

您可以检查Fiddler是否NPM给出了身份验证错误。易于安装和配置。将Fiddler Rule设置为Automatically Authenticated。在.npmrc中设置这些属性

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

它为我工作:)

前端Eva 2020.03.24

我这样解决了这个问题:

1)我运行以下命令:

npm config set strict-ssl false

2)然后将npm设置为使用http而不是https运行:

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

3)然后安装您的软件包

npm install <package name>

2020.03.24

我遇到了一些问题,最后我做了如下工作:

  1. 二手的提琴手,选择了“自动认证”
  2. 在提琴手自定义规则中,我添加了

    if (m_AutoAuth) {oSession["X-AutoAuth"] = "domain\\username:password";}
    
  3. 最后在npm中,我将代理设置为http:// localhost:8888

这很好。

飞云 2020.03.24

pac在Internet Explorer局域网设置中查找文件的url,然后从配置的URL下载pac文件。pac文件只是一个JavaScript文件,其功能名为FindProxyForURL,可以在不同情况下返回不同的代理主机。

尝试在该pac文件中找到您认为适合一般网络流量的主机,然后将其插入.npmrc C:\Users\<username>\.npmrc

proxy=http://<username>:<pass>@proxyhost:<port>
https-proxy=http://<uname>:<pass>@proxyhost:<port>

即使您可以使用公司计算机上的域和用户名登录,代理服务器也不需要用户活动目录域名,而只需要用 户名和密码(可能与您的Active Directory登录名不同)

不要忘记摆弄特殊的密码字符。

逆天Gil 2020.03.24

我有一个非常类似的问题,我无法让npm在我们的代理服务器后面工作。

我的用户名格式为“域\用户名”-代理配置中包含斜杠导致出现正斜杠。因此输入:

npm config set proxy "http://domain\username:password@servername:port/"

然后运行此命令npm config get proxy将返回以下内容: http:// domain / username:password @ servername:port /

因此,为了解决此问题,我改为使用URL编码反斜杠,因此输入以下内容:

npm config set proxy "http://domain%5Cusername:password@servername:port/"

并且与此代理访问是固定的。

2020.03.24

下载.pac文件。在任何编辑器中打开它,然后查找PROXY = "PROXY X.X.X.X:80;您可能有很多代理,可以复制其中任何一个并运行以下终端命令:

npm config set proxy http://X.X.X.X:80
npm config set https-proxy http://X.X.X.X:80

现在您应该可以安装任何软件包了!

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android