MeWrite Docs

npm: EACCES permission denied

npmでグローバルパッケージのインストール時に権限エラーが発生した場合の解決策

概要

npmでグローバルパッケージをインストールする際に権限不足で失敗するエラーです。

エラーメッセージ

``` 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! errno: -13, npm ERR! code: ‘EACCES’, npm ERR! syscall: ‘access’, npm ERR! path: ‘/usr/local/lib/node_modules’ } ```

原因

  1. グローバルディレクトリの権限: root所有のディレクトリ
  2. sudoでのインストール履歴: 過去にsudoを使用
  3. nodeのインストール方法: パッケージマネージャ経由でroot権限
  4. npmキャッシュの権限問題

解決策

1. npmのデフォルトディレクトリを変更(推奨)

```bash

グローバルディレクトリを作成

mkdir -p ~/.npm-global

npmの設定を変更

npm config set prefix ‘~/.npm-global’

PATHに追加 (~/.bashrc or ~/.zshrc)

export PATH=~/.npm-global/bin:$PATH

設定を反映

source ~/.bashrc ```

2. nvmを使用(推奨)

```bash

nvmをインストール

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

シェルを再起動

source ~/.bashrc

Node.jsをインストール

nvm install –lts nvm use –lts

これ以降はsudo不要

npm install -g package-name ```

3. 既存ディレクトリの権限を修正

```bash

所有権を変更(非推奨だが緊急時)

sudo chown -R $(whoami) /usr/local/lib/node_modules sudo chown -R $(whoami) ~/.npm ```

4. npxを使用してグローバルを避ける

```bash

グローバルインストールせずに実行

npx create-react-app my-app npx eslint . ```

よくある間違い

  • sudoを使い続ける(セキュリティリスク)
  • /usr/local全体の権限を変更
  • root権限でnpmを実行

関連エラー

関連エラー

Node.js の他のエラー

最終更新: 2025-12-10