npm アプリインストール時の通信エラー

最近 npmで何らかのアプリをインストールする時に通信エラーというか、ダウンロード先のアドレスが認識できないエラーが発生する.

例えば、Nuxtプロジェクトのインストール時

$ npx create-nuxt-app プロジェクト名

のコマンドで以下のエラー

エラー:getaddrinfo ENOTFOUND registry.npmjs.org

エラー出力はもっと長いけど、getaddrinfo とあるので registry.npmjs.org のアドレスが認識できないらしい.

[解決方法]

URLhttps://registry.npmjs.org/create-nuxt-appのURLが解決できないので、まずhostコマンドregistry.npmjs.orgIPアドレスを調べる.

$ host registry.npmjs.org
registry.npmjs.org has address 104.16.19.35
registry.npmjs.org has address 104.16.27.35
registry.npmjs.org has address 104.16.21.35
registry.npmjs.org has address 104.16.17.35
registry.npmjs.org has address 104.16.22.35
registry.npmjs.org has address 104.16.25.35
registry.npmjs.org has address 104.16.23.35
registry.npmjs.org has address 104.16.20.35
registry.npmjs.org has address 104.16.16.35
registry.npmjs.org has address 104.16.26.35
registry.npmjs.org has address 104.16.24.35
registry.npmjs.org has address 104.16.18.35
Host registry.npmjs.org not found: 2(SERVFAIL)

/etc/hosts にそのIPを追加する.

$ sudo vim /etc/hosts
127.0.0.1       localhost
127.0.1.1       Bosch3

# 下記の一行を追加 ↓
104.16.19.35 registry.npmjs.org


# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
~                                                                                                   
~                                                                                                   
~                                                                                                   
~                                                                                                   
~                                                                                                   
~                                                                                                   
~                                                                                                   
~                                                                                                   
~                                                                                                   
~                                                                                                   
"/etc/hosts" 13L, 256C   

書き込んで保存してvim終了(Esc -> :w -> :q) 最近のは(Ubuntu18.04)再起動しなくても/etc/hostsへの変更が即反映されるらしい.

気を取り直して再度npx create-nuxt-app プロジェクト名とするとあっさりダウンロードとインストールコマンドの実行が始まった.