プライベートnpmリポジトリを使用する場合、プロキシサーバーを介して一部のリクエストを送信し、その他のリクエストをサーバーに直接送信する機能が必要です。
通常、環境変数HTTP_PROXY、HTTPS_PROXY、およびNO_PROXYを設定すると、これが解決されます。
Npmにはno_proxyのコマンドラインオプションがないことを理解していますが、npmにNO_PROXY環境変数を反映させることができませんでした。上記の環境変数を設定した後、外部ライブラリをダウンロードすると、npmインストールがタイムアウトします(これには、コーポレートプロキシ経由でダウンロードされます)
私の〜/ .npmrcファイルには以下があります:
レジストリ= http:// [internal_npm_registry]
email = [メール]
Npmバージョン3.10.10を実行しています。誰かが同じ必要性を抱えてそれを解決しましたか?
私も同じ問題を抱えていました。いくつかのカスタムモジュールをホストするプライベートのNexus npmリポジトリがあり、これらのパッケージを要求するときにnpmがプロキシを使用しないようにする必要がありました。
私がWindowsで見つけた唯一の信頼できる解決策は、リストした環境変数を設定し、実際にすべてのプロキシ値をnpmから削除することでした(set proxy
、https-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をダウンロードするトリッキーなパッケージも)。
npm 5.3.0 / node 8.4.0
、NO_PROXY
環境変数がチャームとして機能します!