環境
MacOS Montery 12.4
node v16.16.0
npm 8.11.0
エラーメッセージ
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! [Error: EACCES: permission denied, access '/usr/local/lib/node_modules'] {
npm ERR! stack: "Error: EACCES: permission denied, access '/usr/local/lib/node_modules'",
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/ユーザ名/.npm/_logs/2022-0808T08_10_21_20Z-debug.log
注目は5行目
Error: EACCES: permission denied, access '〜〜'
要約:〜〜にアクセスする権限ねぇから!!
つまり、アクセスする権限があればインストールできるということです!簡単ですね(^ ^)
対処方法
以下のコマンドを打つだけです。
npm config get prefix
入力すると、次の結果になると思います。
/usr/local
最後に、以下のコマンドを入力して自分をオーナーにします。
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
すると自分のPCのPWを求められるので、PWを入力すればOKです。
上記で対処できなかった人
/usr/local
と表示されなかった人は、以下の2つの記事を参考にしてみてください。
①npmでpermission deniedになった時の対処法[mac]
②npmでパッケージをインストールする
解決した理由
パーミッション(アクセス権)を変更したからです。
npm config get prefix
で、npmが使用するディレクトリのパーミッションが変更されます。
そしてsudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
の、chown -R
により、このディレクトリ以下の権限が全て変更され、ご自身がオーナーとなるのです。