2

我正在尝试使用代理从 Intranet 访问 npm 存储库。

使用代理(在环境变量 HTTP_Proxy 和 HTTPS_Proxy 中设置)我可以使用我的浏览器和使用 wget 访问没有 ssl 的存储库:

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在尝试获取文件时收到一个。

4

2 回答 2

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。

问候

于 2013-07-09T19:04:21.690 回答
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
于 2021-02-27T07:06:22.887 回答