久しぶりにnpm(Node Package Manager)を使うためにバージョンを確認すると、”npm update check failed“というエラーが出ました。
$ npm -v 5.6.0 ┌─────────────────────────────────────────────────────────────────┐ │ npm update check failed │ │ Try running with sudo or get access │ │ to the local update config store via │ │ sudo chown -R $USER:$(id -gn $USER) /Users/MYUSERNAME/.config │ └─────────────────────────────────────────────────────────────────┘
目次
メッセージの意味
メッセージを見た感じでは「あなた、npmのアップデートが失敗してますよ!」と注意喚起されているような感じがします、”npm update check failed”の文字列は黄色で表示されているので(そういえば今までNode.jsの4系ぐらいを使っていたのを、anyenvを使って8系に変えたので、その影響が出たのかもしれません。
ただし、”npm -v”のコマンドに対して、npmのバージョン番号は表示されているので、致命的なエラーではないと思います。
処置
sudo chown -R $USER:$(id -gn $USER) /Users/MYUSERNAME/.config
メッセージで書かれている通り、”/Users/MYUSERNAME/.config”以下のファイルについて、管理者権限で再帰的にユーザー名とグルプ名を変更します。
$ npm -v 5.6.0
chownコマンドを実行したあとにもう一度、npmのバージョンを確認すると、今度は冒頭の画像のようなエラーは表示されなくなりました。
疑問点
sudo chown -R $USER:$(id -gn $USER) /Users/HiroshiFukui/.config
というコマンドのうち、”$USER:$(id -gn $USER)“は”ユーザー名:グループ名”のことを指します。ですがなぜこんな書き方になるかは分かりません。
こちらのページに似たようなことが書かれていますが、Google翻訳を通しても、意味がよく分かりません。後日、さくらクラブの「いろいろ初心者もくもく勉強会」で質問してみます。