👍

【node.js】大企業様で使われているproxy.pacよりProxyサーバを設定している環境で「npm install」を使う方法

2022/02/09に公開

Problem

大企業様の現場で構内請負や派遣で仕事していると、よく困ります。
それは、nodejsを使った簡単なツールをインストールする際に、npmでモジュールをダウンロードしようとするとダウンロードが出来ないことがある、ということ。
多くの場合、大企業様ではproxy.pacファイルを使っています。そして、事務用PCが持っている固定IPアドレスによって、アクセスできるProxyサーバーを振り分けています。このようなネットワーク環境では、npm install でモジュールがダウンロード出来ません。

Solution

この問題を解決するには次のように設定します。

$ npm config set strict-ssl false
$ npm config set registry "http://registry.npmjs.org/"
(誤)$ npm config set registry "https://registry.npmjs.org/"
(正)$ npm config set registry "http://registry.npmjs.org/"

$ npm config set proxy "http://{{userid}}:{{password}}@{{server-address}}:{{port}}"
$ npm config set proxy "http://{{domain}}\{{userid}}:{{password}}@{{server-address}}:{{port}}"
説明
{{domain}} ドメイン
{{userid}} ユーザーID, ユーザー名
{{password}} パスワード
{{server-address}} サーバーアドレス。直接IPアドレスでもよい
{{port}} ポート番号。80とか8080とか。環境に合わせる。

See also

元の情報はこちら。

http://stackoverflow.com/questions/25660936/using-npm-behind-corporate-proxy-pac

まとめ

proxy.pacでProxyサーバーを自動設定しているようなLAN環境では、

  1. まず、proxy.pacファイルをダウンロードして、
  2. 貸与された作業用PCの固定IPアドレスでproxy.pacファイル内を検索し、
  3. Proxyサーバへのアドレスを見つけてね。

ということです。

元記事を調べて、事実を確認してね。

Conclusion

とある企業様のネットワーク環境で、Windows10でnode.jsをダウンロードし、npmで上記設定を行い、モジュールがダウンロードできることを確認しました。(どこの企業様の社内ネットワーク?:rolling_eyes:)
Mac、Raspberry Piでは確認していません。たぶん同じ設定をすることになると思います。

新しい情報がありましたら、コメントにて教えていただけると幸いです。

補足情報

Windows 10で、http_proxyhttps_proxyの環境変数に次のProxy設定を行うと、VSCodeの拡張機能ダウンロードやWSL2のLinuxコンテナーからのsudo apt-get updateなどもできるようになりました。

$env:http_proxy
$env:https_proxy
$env:http_proxy = "http://<userid>:<password>@<server-address>:<port>"
$env:https_proxy = "http://<userid>:<password>@<server-address>:<port>"

または、環境変数に設定する。
2021-06-17_153007.png

どなたかの何かに貢献できたら幸いです👍

(了)

Discussion