Веб-разработка 4 мин чтения

Как исправить ошибку npm ERR! EACCES: Отказано в доступе

Как исправить ошибку npm ERR! EACCES: Отказано в доступе: что проверить по порядку, чтобы не спутать отказано в доступе с похожей проблемой. Материал фокусируется на Как исправить ошибку npm ERR! EACCES, признаках сбоя, вероятных причинах, безопасной диагностике и проверке результата через версии Node.js, npm, зависимости, переменные окружения, dev-сервер и конфигурацию сборки.

npmEACCESpermissionsдоступfixnode.jslinux

Симптомы

  • Как исправить ошибку npm ERR! EACCES: отказано в доступе.
  • Симптом повторяется после обычного перезапуска или повторной попытки выполнить то же действие.
  • В журнале, интерфейсе или консоли есть сообщение, относящееся к той же операции.
  • Проблема появилась после изменения настроек, обновления, обслуживания, переноса данных или смены условий работы.

Возможные причины

  • Как исправить ошибку npm ERR! EACCES: доступ ограничен правами пользователя, политикой безопасности или владельцем файла.
  • Состояние Как исправить ошибку npm ERR! EACCES расходится с текущей конфигурацией, версией или зависимостью.
  • Проблему поддерживают права доступа, занятый ресурс, поврежденный локальный кэш или неверный путь.
  • Последнее обновление, перенос данных или смена сети изменили условия запуска; проверьте версии Node.js, npm, зависимости, переменные окружения, dev-сервер и конфигурацию сборки.

Пошаговое решение

1

Временное решение: Запуск с повышенными привилегиями

Самый быстрый способ обойти ошибку `EACCES` – это запустить команду npm с правами суперпользователя (для Linux/macOS) или от имени администратора (для Windows). Это временно предоставит npm необходимые права для выполнения операции. Однако, это не рекомендуется для постоянного использования, так как может привести к созданию файлов, принадлежащих root, что вызовет будущие проблемы с разрешениями.

Команда
sudo npm install -g <имя-пакета> (для Linux/macOS)

Для Windows: Запустите командную строку или PowerShell от имени администратора и выполните `npm install -g <имя-пакета>`.
2

Рекомендуемое решение: Изменение владельца глобальной директории npm

Наиболее правильный способ решения проблемы с `EACCES` для глобальных пакетов — это изменить владельца директории, куда npm устанавливает глобальные пакеты, на текущего пользователя. Это позволит вам устанавливать пакеты без `sudo`. 1. **Определите путь к глобальной директории npm:** Выполните команду, чтобы узнать, куда npm устанавливает глобальные пакеты. 2. **Измените владельца этой директории:** * **Для Linux/macOS:** Используйте команду `chown` для изменения владельца директории и всех её поддиректорий на текущего пользователя. * **Для Windows:** Проверьте и измените права доступа к папке, обычно это `C:\Users\<ВашПользователь>\AppData\Roaming\npm` или `C:\Program Files\nodejs\npm` и `C:\Program Files\nodejs\npm_modules`. Убедитесь, что у вашей учетной записи есть полные права на эти папки. Это можно сделать через свойства папки -> вкладка 'Безопасность'.

Команда
npm config get prefix
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
3

Альтернативное решение: Настройка пользовательской директории для глобальных пакетов

Если изменение прав доступа к системным директориям вызывает сложности или нежелательно, можно настроить npm так, чтобы он устанавливал глобальные пакеты в директорию, полностью принадлежащую текущему пользователю. Это полностью обходит проблемы с системными разрешениями. 1. **Создайте новую директорию** для глобальных пакетов, например, в вашей домашней папке: 2. **Настройте npm** использовать эту директорию: 3. **Добавьте эту директорию в переменную окружения `PATH`**, чтобы система могла находить исполняемые файлы глобальных пакетов. Добавьте следующую строку в ваш файл конфигурации оболочки (например, `.bashrc`, `.zshrc`, `.profile`): 4. **Перезагрузите терминал** или выполните `source ~/.bashrc` (или соответствующий файл), чтобы изменения вступили в силу.

Команда
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
4

Комплексное решение: Использование менеджера версий Node.js (nvm, fnm, Volta)

Лучший способ избежать проблем с правами доступа в будущем — это использовать менеджер версий Node.js, такой как `nvm` (Node Version Manager), `fnm` (Fast Node Manager) или `Volta`. Эти инструменты устанавливают Node.js и npm в директории, принадлежащие пользователю, что исключает необходимость в `sudo` для большинства операций и позволяет легко переключаться между разными версиями Node.js. 1. **Удалите существующую установку Node.js и npm** (если она была установлена системно). 2. **Установите выбранный менеджер версий** (например, `nvm`). Инструкции по установке можно найти на официальных страницах проектов. 3. **Используйте менеджер версий для установки Node.js.**

Команда
Пример для nvm (Linux/macOS):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install node
nvm use node
5

Соберите точный контекст ошибки

Запишите полный текст ошибки, версию продукта, время появления и последнее изменение перед сбоем. Без этого легко перепутать первопричину с похожим симптомом и выполнить лишние действия.

6

Проверьте состояние после одного изменения

Вносите только одно исправление за раз и сразу повторяйте исходный сценарий. Если менять несколько параметров одновременно, будет трудно понять, что действительно помогло, и сложнее откатиться.

Суть проблемы

Как исправить ошибку npm ERR! EACCES: Отказано в доступе нужно разбирать по фактическому месту сбоя, а не по общей формулировке ошибки. Сначала подтвердите, что проблема относится именно к Как исправить ошибку npm ERR! EACCES: совпадает действие, сообщение, версия компонента и момент появления симптома.

Что уточнить перед исправлением

Проверьте версии Node.js, npm, зависимости, переменные окружения, dev-сервер и конфигурацию сборки. Сохраните точный текст ошибки, последние изменения, версию продукта и короткий фрагмент журнала. Не удаляйте данные, профиль, volume, раздел или конфигурацию, пока лог не показывает, что причина именно в них.

Проверка результата

После каждого изменения повторяйте тот же сценарий, на котором проявлялся сбой. Проблема считается решенной, если проект запускается или собирается повторно без той же ошибки. Если появилась другая ошибка, зафиксируйте ее отдельно: это может быть следующий слой причины, а не возврат исходной проблемы.

Когда останавливать правки

Остановитесь, если следующий шаг требует удаления данных, сброса профиля, переустановки системы, изменения прав без отката или работы с производственной конфигурацией. Сначала сделайте резервную копию и сохраните исходные параметры.

Источники

  1. docs.npmjs.com — проверено 08.06.2026
  2. docs.npmjs.com — проверено 08.06.2026
  3. nodejs.org — проверено 08.06.2026