EACCES: permission denied
ファイルやディレクトリへのアクセス権限がない場合に発生するエラー
概要
EACCES: permission denied は、ファイルやディレクトリへのアクセス権限がない場合に発生するエラーです。npm グローバルインストールや、ファイル操作時によく発生します。
エラーメッセージ
Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/package'
Error: EACCES: permission denied, open '/var/log/app.log'
原因
- npm グローバルディレクトリの権限: root 権限が必要なディレクトリにインストール
- ファイルの所有者: 別のユーザーが所有するファイル
- ディレクトリの権限: 書き込み権限がないディレクトリ
- ポートの使用: 1024 以下のポートは root 権限が必要
解決策
1. npm グローバルディレクトリの変更(推奨)
| |
2. nvm を使用(推奨)
| |
3. 既存ディレクトリの所有者を変更
| |
4. ファイル・ディレクトリの権限を変更
| |
5. プロジェクトローカルのインストール
| |
6. ポートの権限問題
| |
| |
7. Docker での権限問題
| |
8. CI/CD での対処
| |
Node.js コードでの対処
ファイル存在・権限確認
| |
エラーハンドリング
| |
デバッグのコツ
権限の確認
| |
npm の設定確認
| |
Node.js の他のエラー
この記事は役に立ちましたか?