npm installで「cb.apply is not a function」が発生した場合の対処法

npm installで「cb.apply is not a function」が発生した場合の対処法

npm実行時に「npm ERR! cb.apply is not a function」が発生した場合の対処法を解説します。npmキャッシュの削除、Node.jsとnpmのバージョン確認、npmのアップデート、nodist・nvm利用時の対応方法までサンプル付きでわかりやすく紹介します。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • node v14.15.4
  • npm 6.14.10

エラー全文

nodeをnパッケージを使用して、root権限でアップデートした直後にユーザー権限で、以下のコマンドを実行時に発生

npm update npm

エラー全文

npm ERR! Linux 3.10.0-1160.11.1.el7.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/bin/npm" "update" "npm"
npm ERR! node v14.15.4
npm ERR! npm  v3.10.10

npm ERR! cb.apply is not a function
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:

対処法

自分の場合は、一度セッションを抜けることで解決しました。

su - ${USER}

補足

npm ERR! cb.apply is not a functionは、Node.jsとnpmのバージョン不整合やnpmキャッシュの破損が原因で発生するケースが多く見られます。

特に、nodistやnvmなどのバージョン管理ツールを利用している環境では、Node.jsのバージョンに対してnpmのバージョンが適切でない場合に発生することがあります。

まずは現在のバージョンを確認してみましょう。

node -v
npm -v

npmのキャッシュ破損が疑われる場合は、以下のコマンドでキャッシュを削除して再実行すると改善することがあります。

npm cache clean --force

それでも解決しない場合は、npmのアップデートやNode.jsの再インストールを検討してください。

npm install -g npm@latest

また、nodistを利用している場合は、Node.jsのバージョンに合わせてnpmを再設定することで解決するケースもあります。

nodist npm match

参考リンク