npm LinuxWindowsnpm

npm: npm показывает ошибку ENOENT при запуске из другой папки

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

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

Запуск npm из чужого каталога выдаёт ENOENT или «Could not read package.json». Это ошибка поиска файла проекта, а не обязательно повреждённая установка npm.

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

#Симптомы и условия возникновения

Запуск npm из чужого каталога выдаёт ENOENT или «Could not read package.json». Это ошибка поиска файла проекта, а не обязательно повреждённая установка npm. Для начала проверьте используемую версию среды и точный текст ошибки на копии проекта, не меняя рабочий сервер.

#Причины и как их отличить

Возможная причинаКак узнатьЧто делать
Нет package.jsonВ этой ситуации наблюдается конкретный диагностический признак. Сопоставьте его с журналом ошибки и результатом соответствующей проверки, прежде чем выбирать исправление.Ошибка содержит путь и syscall openПерейти в папку с нужным проектом.
Запущен другой рабочий каталогВ этой ситуации наблюдается конкретный диагностический признак. Сопоставьте его с журналом ошибки и результатом соответствующей проверки, прежде чем выбирать исправление.При ручном запуске работает, в cron/CI нетУказать рабочий каталог явно.
Имя/регистр не совпадаетВ этой ситуации наблюдается конкретный диагностический признак. Сопоставьте его с журналом ошибки и результатом соответствующей проверки, прежде чем выбирать исправление.Проблема после переноса Windows → LinuxСверить фактический путь и регистр файла.

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

  1. 1. Посмотрите путь из ошибкиВ терминале прочитайте строку ENOENT: no such file or directory, open .../package.json. Путь показывает, где npm искал файл; его не нужно создавать вручную на случайном месте.
  1. 2. Уточните текущую папкуДля Windows PowerShell выполните Get-Location, для Linux/macOS — pwd. Затем перечислите файлы (Get-ChildItem либо ls -la) и найдите настоящий package.json.
  1. 3. Откройте проект в терминалеВ проводнике или файловом менеджере откройте папку с package.json, затем «Открыть терминал». Либо cd /путь/к/проекту; в Windows используйте Set-Location "C:\путь\проект" с действительным путём.
  1. 4. Проверьте метаданные npmВ верном каталоге выполните npm pkg get name и npm pkg get scripts. Если файл есть, но JSON повреждён, появится ошибка разбора, которую нужно исправить по строке и позиции.
  2. Чтение project package.json; если имя задано, возвращается его значение
    Linux · Терминал (Bash)Команда
    Чтение project package.json; если имя задано, возвращается его значение.
    npm pkg get name
  1. 5. Учтите монорепозиторийЕсли package.json находится в корне и в отдельных подпроектах, определите, на каком уровне предусмотрен нужный скрипт. Для npm workspaces используют соответствующие настройки и флаг --workspace, а не угадывают путь.
  1. 6. Исправьте запуск из cron/CIВ файле задания укажите рабочую папку проекта (например, WorkingDirectory= в systemd либо шаг cd в сценарии). При отсутствии прав на папку нужно исправить права конкретного задания, а не выдавать всем глобальный доступ.
  1. 7. Повторите команду из нужного контекстаВыполните прежнее npm run или npm ci только на копии для установки, убедитесь, что npm читает ожидаемый package.json. Если ENOENT указывает уже на другую зависимость, разберите новый путь отдельно.

#Как проверить результат и что делать, если не помогло

Вывод npm pkg get name соответствует нужному проекту, команда npm больше не ищет package.json в случайной рабочей папке.

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

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

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

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