内部仓库可以直连,而公共包流量仍需要办公代理。保留代理设置,并把内部目标加入 noproxy。

例如,相关的 .npmrc 条目可以写成:

registry=https://registry.corp.example/repository/npm/
proxy=http://proxy.example:8080
https-proxy=http://proxy.example:8080
noproxy[]=registry.corp.example
noproxy[]=packages.corp.example

绕过条目写的是目标主机,而不是代理服务器。它们是主机条目,所以不要把仓库的 scheme、路径和端口写进这些字符串。

在 npm 11.6.4 附带的选择器里,域组件从右往左比较。registry.corp.example 匹配该主机名及其子域。比较时会去掉前导点;这个主机名示例不需要字面星号。

当仓库在另一个内部主机名上返回 tarball URL 时,要把包内容主机也列进去。否则索引和文件下载可能走不同的路由。

数组语法让多个例外保持可读。npm 也记录了逗号分隔的字符串形式,以及从环境推导的 NO_PROXY 默认值。当某个目标仍然走意外路由时,检查这次调用实际生效的 noproxy 设置。

相关文章