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
元の情報はこちら。
まとめ
proxy.pacでProxyサーバーを自動設定しているようなLAN環境では、
- まず、proxy.pacファイルをダウンロードして、
- 貸与された作業用PCの固定IPアドレスでproxy.pacファイル内を検索し、
- Proxyサーバへのアドレスを見つけてね。
ということです。
元記事を調べて、事実を確認してね。
Conclusion
とある企業様のネットワーク環境で、Windows10でnode.jsをダウンロードし、npmで上記設定を行い、モジュールがダウンロードできることを確認しました。(どこの企業様の社内ネットワーク?)
Mac、Raspberry Piでは確認していません。たぶん同じ設定をすることになると思います。
新しい情報がありましたら、コメントにて教えていただけると幸いです。
補足情報
Windows 10で、http_proxy
やhttps_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>"
どこかのコミュニティーのどなたかの何らかに貢献できましたら幸いです。👍
(了)