web-dev-qa-db-ja.com

NPMでNO_PROXYを構成できますか?

プライベートnpmリポジトリを使用する場合、プロキシサーバーを介して一部のリクエストを送信し、その他のリクエストをサーバーに直接送信する機能が必要です。

通常、環境変数HTTP_PROXY、HTTPS_PROXY、およびNO_PROXYを設定すると、これが解決されます。

Npmにはno_proxyのコマンドラインオプションがないことを理解していますが、npmにNO_PROXY環境変数を反映させることができませんでした。上記の環境変数を設定した後、外部ライブラリをダウンロードすると、npmインストールがタイムアウトします(これには、コーポレートプロキシ経由でダウンロードされます)

私の〜/ .npmrcファイルには以下があります:

レジストリ= http:// [internal_npm_registry]

email = [メール]

Npmバージョン3.10.10を実行しています。誰かが同じ必要性を抱えてそれを解決しましたか?

9
Daniel Pulitano

私も同じ問題を抱えていました。いくつかのカスタムモジュールをホストするプライベートのNexus npmリポジトリがあり、これらのパッケージを要求するときにnpmがプロキシを使用しないようにする必要がありました。

私がWindowsで見つけた唯一の信頼できる解決策は、リストした環境変数を設定し、実際にすべてのプロキシ値をnpmから削除することでした(set proxyhttps-proxy and https_proxy all to null.npmrcファイル内)。

たとえば、プロジェクトルートの.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をダウンロードするトリッキーなパッケージも)。

7
GFoley83

npm 5.3.0 / node 8.4.0NO_PROXY環境変数がチャームとして機能します!

5