#Что означает ошибка
npm ERR! code ENOENT npm ERR! enoent ENOENT: no such file or directory, open 'package.json'
npm ERR! enoent ENOENT: no such file or directory, open '.../package.json' означает, что npm не нашёл нужный файл или каталог. Чаще всего вы запускаете команду не в той папке, где лежит package.json, или файл был удалён.
ENOENT — общий код «нет такого файла»; в сообщении указан конкретный путь.
Определите путь и убедитесь, что он существует.
ENOENT означает, что npm не нашёл файл или каталог. Чаще всего команда запущена не в папке проекта, где лежит package.json.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не та папка | Команда выполнена вне проекта. | Перейдите в каталог проекта. |
| Нет package.json | Проект не инициализирован. | Выполните npm init. |
| Повреждён кэш npm | Другие пакеты тоже. | Очистите кэш. |
| Файл удалён или переименован | Раньше работало. | Восстановите. |
#Пошаговое решение
- Посмотрите путь в сообщенииВ терминале проекта выполните
pwd(Linux/macOS) либоGet-Location(PowerShell). Сравните путь с каталогом, содержащимpackage.json: в VS Code его можно увидеть в панели «Проводник». Откройте сообщениеENOENT ... open '...package.json'и запишите точный путь, который не удалось открыть. Если ошибки относятся к другому файлу, сначала выясните источник именно того пути:ENOENTозначает «нет файла/каталога», а не всегда отсутствиеpackage.json. - Перейдите в корень проектаПосмотрите файлы: Linux/macOS —
ls -la, PowerShell —Get-ChildItem -Force. Еслиpackage.jsonнаходится в подпапке, перейдите в неё командойcdс реальным путём (в Windows и Linux путь может содержать пробелы — заключите его в кавычки). Проверьте имяpackage.jsonбез лишнего расширения.txtи учитывайте регистр имени в Linux. Повторитеnpm runили исходную npm-команду. Успешный признак — список сценариев либо отсутствие ошибки открытия конкретного файла. - Создайте package.json при необходимостиЕсли это существующий проект из Git, откройте его
README.mdи убедитесь, что вы клонировали весь проект, включая вложенные пакеты и нужную ветку. Проверьтеgit statusиgit ls-files package.json; если файл удалён локально, восстанавливайте его только после проверки несохранённых изменений из системы контроля версий. Командаnpm init -yсоздаёт новый манифест и не возвращает настройки старого проекта: её допустимо использовать только при создании своего проекта с нуля, не как лечение пропавшего package.json. - Переустановите node_modulesЕсли npm ищет файл внутри
node_modules, это другой сценарий: проверьте имя и версию пакета, текст ошибки и доступность файлового пути. При наличии сохранённогоpackage-lock.jsonи после резервной копии вручную изменённого содержимогоnode_modulesможно выполнитьnpm ci, чтобы восстановить установленные зависимости. Команда пересоздаётnode_modules; не удаляйтеpackage-lock.jsonи не очищайте весь глобальный кэш без конкретной причины. Если файл принадлежит собственному скрипту сборки, исправьте путь в нём. - Для Windows создайте %APPDATA%\npmПри повторном
ENOENTна Windows проверьте, не перемещён ли проект OneDrive, не содержит ли путь недоступный сетевой диск и не заблокирован ли файл правами. Скопируйте только проект в короткий локальный путь в согласованной рабочей копии, если проблема действительно в длине пути, и повторите команду. Не меняйте системный PATH/политику длинных путей ради произвольного ENOENT. Если путь указывает на%APPDATA%или другой системный каталог npm, зафиксируйте полный текст ошибки и действительные настройкиnpm config get prefixиnpm config get cacheперед изменениями. - Проверка кэша npmLinux · Терминал (Bash)КомандаПроверка кэша npm.
npm cache verify
#package.json
Проверьте текущую папку: pwd (Linux/macOS) или cd (Windows), затем dir/ls. Перейдите в корень проекта. Если вы создаёте новый собственный проект, применяйте npm init -y; для существующего проекта это создаст неверный файл. Для запуска из другого места: npm --prefix путь install. Убедитесь, что при клонировании репозитория вы вошли в папку проекта, а не в родительскую.
#Другие пути
Если путь указывает на node_modules/.bin/... или файл внутри node_modules, установка прервана или повреждена: при наличии сохранённого package-lock.json и после проверки содержимого node_modules выполните npm ci, чтобы пересоздать зависимости. Для ENOENT ... spawn проверьте, что нужная программа установлена и находится в PATH (git, python). Для путей в скриптах package.json проверьте наличие файлов.
#Windows и кэш
На Windows ENOENT ... AppData\Roaming\npm лечится созданием папки: mkdir "%APPDATA%\npm". Длинный путь — лишь один из возможных факторов Windows; сначала проверьте точный путь и воспроизведение на коротком локальном пути. Проверьте, что антивирус не удаляет файлы при установке, и права на папку. Обновите npm и Node.