Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
30
Help us understand the problem. What are the problem?
@riraosan

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

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}}"
説明
{{domein}} ドメイン
{{userid}} ユーザーID, ユーザー名
{{password}} パスワード
{{server-address}} サーバーアドレス。直接IPアドレスでもよい
{{port}} ポート番号。80とか8080とか。環境に合わせる。

See also

元の情報はこちら。

まとめると

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

(了)


更新 : 2021-06-17 12:34

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
30
Help us understand the problem. What are the problem?