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

Исправление ошибки npm ERR! ENOENT: file not found

Ошибка `npm ERR! ENOENT` (Error No Entry) указывает на то, что менеджер пакетов (npm или pnpm) не смог найти файл или директорию, к которой пытался получить доступ. Это распространенная проблема, которая может возникнуть

npmpnpmNode.jsошибкаENOENTзависимостиустановкаразработка

Симптомы

  • Сообщение об ошибке `npm ERR! ENOENT` в консоли.
  • Невозможность установить пакеты или запустить скрипты.
  • Сбой сборки или развертывания проекта.
  • Указание на отсутствующий файл или директорию в сообщении об ошибке (например, `lstat '<deployDir>/node_modules'`).

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

  • Повреждение или отсутствие директории `node_modules`.
  • Поврежденные файлы блокировки (`package-lock.json`, `pnpm-lock.yaml`).
  • Устаревшие версии `npm` или `pnpm`. Например, в `pnpm` до версии 11.4.0 существовала ошибка, вызывающая `ENOENT` при развертывании, если `configDependencies` были объявлены, но отсутствовали в директории развертывания (источники 1, 2, 3, 4, 5).
  • Некорректные пути или команды в скриптах `package.json`.
  • Недостаточные права доступа к файлам или директориям проекта.
  • Проблемы с установкой Node.js или переменными среды.

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

1

Очистка кэша и переустановка зависимостей

Поврежденный кэш или некорректно установленные зависимости часто являются причиной `ENOENT`. Попробуйте очистить кэш менеджера пакетов и выполнить чистую переустановку. **Для npm:** 1. Очистите кэш `npm` принудительно: `npm cache clean --force` 2. Удалите директорию `node_modules` и файл `package-lock.json` в корне вашего проекта: `rm -rf node_modules package-lock.json` (для Windows используйте `rd /s /q node_modules` и `del package-lock.json`) 3. Переустановите все зависимости проекта: `npm install` **Для pnpm:** 1. Очистите кэш хранилища `pnpm`: `pnpm store prune` 2. Удалите директорию `node_modules` и файл `pnpm-lock.yaml` в корне вашего проекта: `rm -rf node_modules pnpm-lock.yaml` (для Windows используйте `rd /s /q node_modules` и `del pnpm-lock.yaml`) 3. Переустановите все зависимости проекта: `pnpm install`

Команда
npm cache clean --force && rm -rf node_modules package-lock.json && npm install
2

Обновление менеджера пакетов и Node.js

Устаревшие версии `npm` или `pnpm` могут содержать ошибки, которые приводят к `ENOENT`. Например, в `pnpm` до версии 11.4.0 существовала известная проблема `ENOENT` при развертывании, связанная с `configDependencies`. Обновите ваш менеджер пакетов и Node.js до последних стабильных версий. **Обновление npm:** 1. Обновите `npm` до последней версии: `npm install -g npm@latest` **Обновление pnpm:** 1. Обновите `pnpm` до последней версии: `npm install -g pnpm@latest` **Обновление Node.js:** Рекомендуется использовать менеджер версий Node.js, такой как `nvm` (Node Version Manager) для Linux/macOS или `nvm-windows` для Windows, чтобы легко переключаться между версиями и обновляться. Это гарантирует, что вы используете версию Node.js, совместимую с вашим проектом и менеджером пакетов.

Команда
npm install -g npm@latest && npm install -g pnpm@latest
3

Проверка прав доступа

Недостаточные права доступа к файлам или директориям проекта могут препятствовать `npm` или `pnpm` создавать, читать или записывать необходимые файлы. Попробуйте выполнить команды с повышенными привилегиями или изменить права доступа к директориям проекта. **Для Linux/macOS:** 1. Попробуйте запустить команду с `sudo` (используйте осторожно, так как это может привести к проблемам с правами для других операций): `sudo npm install` 2. Измените владельца директории проекта на текущего пользователя: `sudo chown -R $(whoami) /path/to/your/project` (замените `/path/to/your/project` на фактический путь к вашему проекту) 3. Измените владельца глобальных директорий `npm` (если проблема глобальная): `sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}` **Для Windows:** 1. Запустите командную строку или PowerShell от имени администратора и повторите команду `npm install` или другую, которая вызывала ошибку.

Команда
sudo npm install
4

Проверка файла package.json и скриптов

Если ошибка `ENOENT` указывает на конкретный файл или скрипт (например, `ENOENT: no such file or directory, stat 'path/to/script.js'`), внимательно проверьте ваш файл `package.json`. Убедитесь, что все пути к файлам в секции `scripts` или в конфигурации зависимостей корректны и что эти файлы действительно существуют. Опечатки или неверные пути являются частой причиной этой ошибки. Также убедитесь, что все исполняемые файлы, на которые ссылаются скрипты, доступны в `PATH` или указаны полные пути.

5

Переустановка Node.js

В редких случаях, когда другие методы не помогают, проблема может быть в поврежденной установке Node.js. Полное удаление и последующая чистая установка Node.js могут решить проблему. Используйте официальные установщики с сайта Node.js или менеджеры версий (nvm/nvm-windows) для более гибкого управления версиями. Перед переустановкой убедитесь, что вы удалили все остаточные файлы Node.js и npm из вашей системы.

Что такое npm ERR! ENOENT?

Ошибка npm ERR! ENOENT расшифровывается как “Error No Entry” или “Error No Entity” и означает, что менеджер пакетов (будь то npm или pnpm) не смог найти файл или директорию, к которой пытался получить доступ. Это одна из наиболее распространенных ошибок в экосистеме Node.js, которая может возникнуть при попытке установить зависимости, запустить скрипты, выполнить сборку или развернуть проект.

Симптомы ошибки

Вы можете столкнуться с этой ошибкой в следующих ситуациях:

  • В консоли появляется сообщение, начинающееся с npm ERR! ENOENT.
  • Команды npm install, pnpm install, npm run build или другие скрипты завершаются сбоем.
  • Проект не собирается или не развертывается.
  • В сообщении об ошибке часто указывается конкретный файл или путь, который не удалось найти, например, ENOENT: no such file or directory, stat 'path/to/missing/file' или lstat '<deployDir>/node_modules'.

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

Причин возникновения npm ERR! ENOENT может быть несколько:

  • Повреждение или отсутствие директории node_modules: Директория, содержащая все установленные пакеты, могла быть удалена, повреждена или не создана должным образом.
  • Поврежденные файлы блокировки: Файлы package-lock.json (для npm) или pnpm-lock.yaml (для pnpm) могут содержать некорректные ссылки на пакеты или быть повреждены, что мешает корректной установке зависимостей.
  • Устаревшие версии npm или pnpm: Старые версии менеджеров пакетов могут содержать баги, которые приводят к ошибкам ENOENT. Например, в pnpm до версии 11.4.0 существовала известная проблема, вызывающая ENOENT при развертывании, если configDependencies были объявлены, но отсутствовали в директории развертывания (см. источники 1, 2, 3, 4, 5).
  • Некорректные пути или команды в скриптах package.json: Если ошибка возникает при выполнении скрипта, возможно, в package.json указан неверный путь к исполняемому файлу или команда содержит опечатку.
  • Недостаточные права доступа: Операционная система может запрещать npm или pnpm создавать, изменять или удалять файлы и директории, необходимые для работы.
  • Проблемы с установкой Node.js или переменными среды: Реже, но возможно, что сама установка Node.js повреждена или переменные среды настроены неправильно.

Шаги по устранению ошибки

Следуйте этим шагам, чтобы диагностировать и исправить ошибку npm ERR! ENOENT.

1. Очистка кэша и переустановка зависимостей

Поврежденный кэш или некорректно установленные зависимости часто являются причиной ENOENT. Попробуйте очистить кэш менеджера пакетов и выполнить чистую переустановку.

Для npm:

  1. Очистите кэш npm принудительно: npm cache clean --force
  2. Удалите директорию node_modules и файл package-lock.json в корне вашего проекта: rm -rf node_modules package-lock.json (для Windows используйте rd /s /q node_modules и del package-lock.json)
  3. Переустановите все зависимости проекта: npm install

Для pnpm:

  1. Очистите кэш хранилища pnpm: pnpm store prune
  2. Удалите директорию node_modules и файл pnpm-lock.yaml в корне вашего проекта: rm -rf node_modules pnpm-lock.yaml (для Windows используйте rd /s /q node_modules и del pnpm-lock.yaml)
  3. Переустановите все зависимости проекта: pnpm install

2. Обновление менеджера пакетов и Node.js

Устаревшие версии npm или pnpm могут содержать ошибки, которые приводят к ENOENT. Например, в pnpm до версии 11.4.0 существовала известная проблема ENOENT при развертывании, связанная с configDependencies. Обновите ваш менеджер пакетов и Node.js до последних стабильных версий.

Обновление npm:

  1. Обновите npm до последней версии: npm install -g npm@latest

Обновление pnpm:

  1. Обновите pnpm до последней версии: npm install -g pnpm@latest

Обновление Node.js: Рекомендуется использовать менеджер версий Node.js, такой как nvm (Node Version Manager) для Linux/macOS или nvm-windows для Windows, чтобы легко переключаться между версиями и обновляться. Это гарантирует, что вы используете версию Node.js, совместимую с вашим проектом и менеджером пакетов.

3. Проверка прав доступа

Недостаточные права доступа к файлам или директориям проекта могут препятствовать npm или pnpm создавать, читать или записывать необходимые файлы. Попробуйте выполнить команды с повышенными привилегиями или изменить права доступа к директориям проекта.

Для Linux/macOS:

  1. Попробуйте запустить команду с sudo (используйте осторожно, так как это может привести к проблемам с правами для других операций): sudo npm install
  2. Измените владельца директории проекта на текущего пользователя: sudo chown -R $(whoami) /path/to/your/project (замените /path/to/your/project на фактический путь к вашему проекту)
  3. Измените владельца глобальных директорий npm (если проблема глобальная): sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Для Windows:

  1. Запустите командную строку или PowerShell от имени администратора и повторите команду npm install или другую, которая вызывала ошибку.

4. Проверка файла package.json и скриптов

Если ошибка ENOENT указывает на конкретный файл или скрипт (например, ENOENT: no such file or directory, stat 'path/to/script.js'), внимательно проверьте ваш файл package.json. Убедитесь, что все пути к файлам в секции scripts или в конфигурации зависимостей корректны и что эти файлы действительно существуют. Опечатки или неверные пути являются частой причиной этой ошибки. Также убедитесь, что все исполняемые файлы, на которые ссылаются скрипты, доступны в PATH или указаны полные пути.

5. Переустановка Node.js

В редких случаях, когда другие методы не помогают, проблема может быть в поврежденной установке Node.js. Полное удаление и последующая чистая установка Node.js могут решить проблему. Используйте официальные установщики с сайта Node.js или менеджеры версий (nvm/nvm-windows) для более гибкого управления версиями. Перед переустановкой убедитесь, что вы удалили все остаточные файлы Node.js и npm из вашей системы.

Источники

  1. github.com — проверено 28.05.2026
  2. github.com — проверено 28.05.2026
  3. github.com — проверено 28.05.2026
  4. github.com — проверено 28.05.2026
  5. github.com — проверено 28.05.2026