npm WindowsLinuxmacOSNode.jsnpm

npm: npm возвращает ошибку EACCES при записи в кеш

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

Ошибка EACCES при записи npm в собственный кеш означает, что текущий пользователь не имеет доступа к конкретному пути кеша. Это отдельная неисправность от отказа в доступе при глобальной установке пакетов.

В этой статье
  1. Как проявляется ошибка и когда применим способ
  2. Причины и признаки
  3. Пошаговая диагностика и решение
  4. Проверка результата и действия при повторении

#Как проявляется ошибка и когда применим способ

Ошибка EACCES при записи npm в собственный кеш означает, что текущий пользователь не имеет доступа к конкретному пути кеша. Это отдельная неисправность от отказа в доступе при глобальной установке пакетов.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Кеш принадлежит другой учётной записиРанее npm запускали от другого пользователя или через sudo.В ошибке указан путь внутри кеша и отказ в записи.Использовать кеш текущего пользователя, исправить только его права.
Не тот путь кешаNPM_CONFIG_CACHE или npmrc направляет кеш в защищённую папку.npm config get cache показывает чужой или системный каталог.Задать безопасный пользовательский каталог.

#Пошаговая диагностика и решение

  1. 1. Уточните, где именно отказано в доступеВ терминале под обычной учётной записью скопируйте из текста EACCES полный путь к файлу. Если он относится к node_modules или /usr/local, это другая ошибка, здесь рассматриваем только кеш. Не выполняйте установку от администратора, чтобы «победить» ошибку.
  1. 2. Посмотрите расположение кеша и владельцаНа Linux/macOS выполните npm config get cache и затем ls -ld для показанного пути, заменив ПУТЬ_КЕША. На Windows откройте Проводник, вставьте показанный путь в адресную строку и проверьте свойства папки → Безопасность. Убедитесь, что работает именно ваш пользователь.
  2. Вторую команду запускать только в Linux/macOS и с подставленным путём; только чтение
    Linux · Терминал (Bash)Команда
    Вторую команду запускать только в Linux/macOS и с подставленным путём; только чтение.
    npm config get cache
    ls -ld ПУТЬ_КЕША
  1. 3. Проверьте переменные окруженияВ Linux/macOS посмотрите настройку через npm config list, предварительно не передавая вывод посторонним: в нём могут быть настройки реестров. Проверьте NPM_CONFIG_CACHE в конфигурации запуска или через команды оболочки. На Windows проверьте переменные пользователя в «Система → Дополнительные параметры системы → Переменные среды». Не трогайте чужой общий кеш.
  1. 4. Перейдите на собственный каталог кешаЕсли кеш указывает на чужую директорию, создайте каталог внутри домашнего профиля и установите путь только для своего пользователя. На Linux/macOS можно использовать путь $HOME/.npm; в Windows оставьте путь, управляемый npm для текущего пользователя. Сохраните прежнее значение, чтобы вернуть его при неуспехе.
  2. Linux/macOS; устанавливает пользовательский каталог кеша
    Linux · Терминал (Bash)С осторожностью
    Linux/macOS; устанавливает пользовательский каталог кеша. Не применяйте эту команду буквально в PowerShell.
    npm config set cache "$HOME/.npm" --location=user

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 5. Проверьте доступность кеша без глобальной установкиВыполните npm cache verify из своей учётной записи. Успешный вывод содержит проверку содержимого; при повторном EACCES найдите точный путь, который продолжает оставаться недоступным. Если удаление прав у рабочей папки критично, обратитесь к системному администратору.
  2. Непривилегированный запуск, проверяет целостность и обслуживает кеш
    Linux · Терминал (Bash)Команда
    Непривилегированный запуск, проверяет целостность и обслуживает кеш.
    npm cache verify
  1. 6. Повторите установку на тестовом проектеВ копии проекта с согласованным lock-файлом выполните npm ci. Если он завершился, проверьте, что кеш теперь находится в домашнем каталоге и при повторной операции ошибка прав отсутствует. Если осталась, верните конфигурацию кеша к исходной и изучите права конкретного файла.
  2. Только в копии: удалит node_modules, может выполнять скрипты зависимостей
    Linux · Терминал (Bash)С осторожностью
    Только в копии: удалит node_modules, может выполнять скрипты зависимостей.
    npm ci

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

#Проверка результата и действия при повторении

Ошибка EACCES исчезает при npm cache verify и установке тестового проекта обычным пользователем, при этом системные директории и чужие файлы не затронуты.

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

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.