【问题标题】:Can you configure NO_PROXY in NPM?可以在 NPM 中配置 NO_PROXY 吗?
【发布时间】:2017-01-10 16:58:12
【问题描述】:

使用私有 npm 存储库时,我需要能够通过代理服务器发送一些请求,而其他请求则直接发送到服务器。

通常,设置环境变量 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 可以解决此问题。

我知道 npm 没有 no_proxy 的命令行选项,但我无法让 npm 尊重 NO_PROXY 环境变量:设置上述环境变量后,下载外部库时 npm install 超时(需要通过公司代理下载)

我的 ~/.npmrc 文件有以下内容:

registry=http://[internal_npm_registry]

电子邮件=[电子邮件]

我正在运行 npm 版本 3.10.10。有没有人有同样的需求并解决了?

【问题讨论】:

  • 我遇到了同样的问题。在 npm 版本 3.10.10 的 Windows 10 上,NPM 不尊重 NO_PROXY 环境变量。
  • 我对 3.10.3 也有同样的问题。我搜索了我们正在使用的 npm 3.10.3 的配置帮助,并且没有新版本的“noproxy”选项。这以某种方式告诉我,他们的 .npmrc 文件中也不支持 noproxy/no_proxy/NO_PROXY/no-proxy 配置..我弄错了吗?对于版本 5.4.2(我们正在使用的另一个版本),配置只有代理和 https-proxy 选项。我解决构建问题的最简单方法是删除 .npmrc 项目文件并使用全局 mesos 云 npm 配置.

标签: npm npm-install


【解决方案1】:

我在工作中遇到了同样的问题:我们有一个私有的 Nexus npm 存储库,我们在其中托管一些自定义模块,并且我们需要 npm 在请求这些包时不使用代理。

我为 Windows 找到的唯一可靠解决方案是设置您列出的环境变量并实际从 npm 中删除所有代理值(在您的 .npmrc 中将 proxyhttps-proxyhttps_proxy 全部设置为 null文件)。

例如,项目根目录中的.npmrc 文件如下所示:

strict-ssl=false
ca=null
registry=http://my-nexus-repo.com/repository/npm-packages/
my-custom-registry-on-nexus:registry=http://my-nexus-repo.com/repository/hosted-npm-packages/
https_proxy=null
https-proxy=null
proxy=null

继续使用上面的示例,您的 no_proxy 环境变量将类似于:

my-nexus-repo.com,localhost

这样做让我们能够无缝安装所有 npm 包(即使是像 node-sass 这样在 npm 之外下载 tarball 的棘手包)。

【讨论】:

    【解决方案2】:

    使用npm 5.3.0 / node 8.4.0NO_PROXY 环境变量就像一个魅力!

    【讨论】:

    • 谢谢,它在 Linux npm 6.1.0 / node 10.3.0 中也能正常工作
    猜你喜欢
    • 1970-01-01
    • 2020-12-15
    • 2021-12-06
    • 2021-04-13
    • 1970-01-01
    • 2019-02-16
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多