已设置noproxy规则但npm install仍报407代理认证错误
问题根因
你遇到的407报错是访问内网npm私有源时请求被转发到了公司代理服务器,触发代理认证要求导致的。你配置的noproxy规则未生效,和你使用的npm 6.14.15版本的配置解析规则有关。
解决方案
- 修正npm配置规则
npm 6.x版本标准的跳过代理配置项名为no-proxy,且不支持*.域名格式的前导通配符写法,同时配置值不需要额外加引号,调整你的.npmrc配置为以下内容即可:
no-proxy = .intra.company.fr proxy = http://user:pass@proxy.intra.company.fr:8080/ registry = http://registry.subdomain.intra.company.fr/repository/npm/
使用.intra.company.fr格式可以匹配所有该域名下的子域名,包括你的私有源域名registry.subdomain.intra.company.fr。
- 验证配置是否生效
执行命令npm config list查看输出的生效配置,确认no-proxy、proxy、registry三个配置和调整后的内容一致,没有项目级.npmrc或者用户级配置覆盖全局配置。 - 临时验证安装
如果需要快速验证规则是否正确,可以在安装依赖时手动指定参数:npm install --no-proxy .intra.company.fr - 特殊场景处理
如果调整配置后仍有问题,可以在安装依赖时临时清空代理配置,避免代理影响内网源访问:npm install --proxy null --no-proxy .intra.company.fr
内容的提问来源于stack exchange,提问作者thchp
相关产品推荐
相关产品推荐

