npmをアップデート時にagentkeepaliveのエラーが出るときの対処法

npmでagentkeepaliveのエラー

npmは最新バージョンがリリースされるとnpmを実行後に以下のような内容がターミナルに表示されることがある。

npm notice New minor version of npm available! 7.5.6 -> 7.6.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.6.0
npm notice Run npm install -g npm@7.6.0 to update!

見ての通りバージョン7.6.0がリリースされたので(sudo) npm install -g npm@7.6.0を実行してアップデートすることを促すメッセージとなっている。

しかし、最近はアップデートしようとすると、Cannot find module 'agentkeepalive' というエラーが表示されてアップデートできないことがある。

$ npm install -g npm@7.6.0
 npm notice 
 npm notice New minor version of npm available! 7.5.6 -> 7.6.0
 npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.6.0
 npm notice Run npm install -g npm@7.6.0 to update!
 npm notice 
 npm ERR! code MODULE_NOT_FOUND
 npm ERR! Cannot find module 'agentkeepalive'
 npm ERR! Require stack:
 npm ERR! - /usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/agent.js
 npm ERR! - /usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/index.js
 npm ERR! - /usr/local/lib/node_modules/npm/node_modules/npm-registry-fetch/index.js
 npm ERR! - /usr/local/lib/node_modules/npm/node_modules/pacote/lib/remote.js
 npm ERR! - /usr/local/lib/node_modules/npm/node_modules/pacote/lib/git.js
 npm ERR! - /usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetcher.js
 npm ERR! - /usr/local/lib/node_modules/npm/node_modules/pacote/lib/index.js
 npm ERR! - /usr/local/lib/node_modules/npm/lib/utils/update-notifier.js
 npm ERR! - /usr/local/lib/node_modules/npm/lib/cli.js
 npm ERR! - /usr/local/lib/node_modules/npm/bin/npm-cli.js
 npm ERR! A complete log of this run can be found in:

どうやらこれはバグで、アップデートしたい場合はnpm i -g npm@latestを実行しないとダメらしい。

npm i -g npm@latest