npmの操作でnpm getaddrinfo ENOTFOUNDが出る問題を解決した話

Posted on
npm

どうやらDNSの名前解決に失敗していたっぽい このissueの途中にあるコメントに書いてあることを試したらうまくいったので抜粋

$ npm info express --verbose

# Error message: npm info retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443
# registry.npmjs.orgのaddrinfoが見つからない!というエラーだと思われる
# なので、直接IPアドレスを調べる

$ nslookup registry.npmjs.org

Server:		2400:2410:a441:b300:1111:1111:1111:1111
Address:	2400:2410:a441:b300:1111:1111:1111:1111#53

Non-authoritative answer:
registry.npmjs.org	canonical name = a.sni.fastly.net.
Name:	a.sni.fastly.net
Address: 151.101.72.162

registry.npmjs.orgのIPアドレスがわかったので/etc/hostsに追記する

$ sudo vim /etc/hosts

151.101.72.162  registry.npmjs.org
:wq

npm commandを試したら動くはず

ちなみに、動くようになった後で /etc/hosts から registry.npmjs.orgのIPアドレスを消してもちゃんと動く

どういうことなんだろう

とりあえず動くようになってよかった