我正在尝试使用代理从Intranet访问npm存储库。
使用代理(在环境变量HTTP_Proxy和HTTPS_Proxy中设置)我可以使用浏览器在没有ssl的情况下访问存储库,并使用wget:
wget registry.npmjs.org/yuidocjs
当我使用https时,我可以使用浏览器访问,但不能使用wget
wget https://registry.npm.js.org/yuidocjs #fails
当我尝试使用NPM时,设置registry=http://registry.npm.js.org/
会产生404。
当我使用默认的https注册表路径时,会导致超时。
我在这里缺少什么?我的配置文件如下所示:
proxy = http://ems-lnx222:8080/proxy.pac
https-proxy = http://ems-lnx222:8080/proxy.pac
registry = http://registry.npmjs.org/
prefix = /ws/bemccorm-rtp/npm-packages
strict-ssl = false
经过多次播放后,我发现.pac代理似乎导致了问题。
我使用普通代理,现在获得200状态,获取正确的tgz文件,然后在尝试获取文件时收到npm ERR! fetch failed
。
答案 0 :(得分:1)
我确信这是一个错字,但只是为了让调试更加清晰。
当我使用https时,我可以使用浏览器访问,但不能使用wget
wget https://registry.npm.js.org/yuidocjs #fails
域名错误... npm.JS而不是npmjs ... 进一步了解wget
wget https://registry.npmjs.org/yuidocjs --2013-07-09 15:57:25-- https://registry.npmjs.org/yuidocjs 解析registry.npmjs.org(registry.npmjs.org)... 67.228.31.146 连接到registry.npmjs.org(registry.npmjs.org)| 67.228.31.146 |:443 ...已连接。 错误:无法验证registry.npmjs.org的证书,由“/ C = US / ST = CA / L = Oakland / O = npm / OU = npm Certificate Authority/CN=npmCA/emailAddress=i@izs.me”颁发: 无法在本地验证发行人的权限。 要不安全地连接到registry.npmjs.org,请使用'--no-check-certificate'。
如果您使用--no-check-certificate,它可以正常工作并下载。
但我们知道这不是您的主要问题,您的主要问题是.PAC文件。 我作为系统管理员工作过几次,我们必须在.pac文件中编写不同的规则: 1)如果是内部发送一切到这个路由器 2)如果通过vpn网络连接,请执行此操作 3)等
所以请做一个获取并转录.pac文件,以便我们可以看到规则。 .pac文件只不过是javascript。
此致
答案 1 :(得分:0)
Repocache 为此工作。
npm config set registry https://127.0.0.1:5000/npm/default/
npm install color
使用以下设置启动 repocache
:
[npm.upstream.default]
url = https://registry.npmjs.org
如果需要代理,添加代理如下:
http = http://127.0.0.1:1087
https = socks5://127.0.0.1:1086