npm WindowsLinux ENOENT

npm ERR! code ENOENT — no such file or directory, open package.json

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

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

ENOENT означает, что npm не нашёл файл или каталог. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. package.json
  5. Другие пути
  6. Windows и кэш

#Что означает ошибка

ENOENT
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Другие пакеты тоже.Очистите кэш.
Файл удалён или переименованРаньше работало.Восстановите.

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

  1. Посмотрите путь в сообщенииВ терминале проекта выполните pwd (Linux/macOS) либо Get-Location (PowerShell). Сравните путь с каталогом, содержащим package.json: в VS Code его можно увидеть в панели «Проводник». Откройте сообщение ENOENT ... open '...package.json' и запишите точный путь, который не удалось открыть. Если ошибки относятся к другому файлу, сначала выясните источник именно того пути: ENOENT означает «нет файла/каталога», а не всегда отсутствие package.json.
  2. Перейдите в корень проектаПосмотрите файлы: Linux/macOS — ls -la, PowerShell — Get-ChildItem -Force. Если package.json находится в подпапке, перейдите в неё командой cd с реальным путём (в Windows и Linux путь может содержать пробелы — заключите его в кавычки). Проверьте имя package.json без лишнего расширения .txt и учитывайте регистр имени в Linux. Повторите npm run или исходную npm-команду. Успешный признак — список сценариев либо отсутствие ошибки открытия конкретного файла.
  3. Создайте package.json при необходимостиЕсли это существующий проект из Git, откройте его README.md и убедитесь, что вы клонировали весь проект, включая вложенные пакеты и нужную ветку. Проверьте git status и git ls-files package.json; если файл удалён локально, восстанавливайте его только после проверки несохранённых изменений из системы контроля версий. Команда npm init -y создаёт новый манифест и не возвращает настройки старого проекта: её допустимо использовать только при создании своего проекта с нуля, не как лечение пропавшего package.json.
  4. Переустановите node_modulesЕсли npm ищет файл внутри node_modules, это другой сценарий: проверьте имя и версию пакета, текст ошибки и доступность файлового пути. При наличии сохранённого package-lock.json и после резервной копии вручную изменённого содержимого node_modules можно выполнить npm ci, чтобы восстановить установленные зависимости. Команда пересоздаёт node_modules; не удаляйте package-lock.json и не очищайте весь глобальный кэш без конкретной причины. Если файл принадлежит собственному скрипту сборки, исправьте путь в нём.
  5. Для Windows создайте %APPDATA%\npmПри повторном ENOENT на Windows проверьте, не перемещён ли проект OneDrive, не содержит ли путь недоступный сетевой диск и не заблокирован ли файл правами. Скопируйте только проект в короткий локальный путь в согласованной рабочей копии, если проблема действительно в длине пути, и повторите команду. Не меняйте системный PATH/политику длинных путей ради произвольного ENOENT. Если путь указывает на %APPDATA% или другой системный каталог npm, зафиксируйте полный текст ошибки и действительные настройки npm config get prefix и npm config get cache перед изменениями.
  6. Проверка кэша npm
    Linux · Терминал (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.

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

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

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