環境
Macですがlinuxなら同様の対処で解決するのではないでしょうか
特にバージョンは関係ないかと思います
npm install -gをするとPermission deniedで失敗してしまう
npmの新しいバージョンが使えるようになったということでnpm install -g npm
でバージョンアップしようとしたところ、以下のようなエラーが出てしまいました
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/abbrev'
npm ERR! [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/abbrev'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules/npm/node_modules/abbrev'
npm ERR! }
原因
自明ですが権限エラーです
調べてみるとやはりroot権限になっていました
$ ls -la /usr/local/lib/node_modules/npm
total 512
// ・・・
drwxr-xr-x 360 root wheel 11520 10 9 2020 node_modules
// ・・・
対処
root権限である必要もないし、Macユーザをオーナーにしようと思ったので以下のコマンドで/usr/local/lib/node_modules
以下の権限を全て変更しました
$ sudo chown -R $USER /usr/local/lib/node_modules
パスワードの入力を要求されるので入力してください
環境変数にユーザ名が登録されたいない場合は
$ sudo chown -R $(whoami) /usr/local/lib/node_modules
で変更してください
ちなみに上記コマンドでは/usr/local/lib/node_modules
以下のディレクトリが全てMacのユーザ権限になります
ちなみに
別のユーザをオーナーにする場合は$USER
の部分にユーザ名を入力してください
参考
stackoverflowに記事がありました
https://stackoverflow.com/questions/48910876/error-eacces-permission-denied-access-usr-local-lib-node-modules