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

npm ERR! enoent: нет package.json в текущей папке

npm ERR! enoent: нет package.json в текущей папке: симптомы, причины и пошаговое исправление без лишней воды. Проверки, безопасные действия и когда нужна поддержка.

npmNode.jspackage.jsonENOENT

Симптомы

  • Команда npm install завершается сообщением enoent ENOENT: no such file or directory, open 'package.json'.
  • npm run dev или npm start сообщает missing script, если команда запускается не в той папке.
  • В терминале открыт родительский каталог, а не каталог проекта.
  • Путь в ошибке указывает на папку без Node.js проекта.
  • Ошибка появилась после распаковки архива, клонирования монорепозитория или открытия не той папки.

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

  • Команда запущена вне корня проекта.
  • Файл package.json был удален, не был создан или не попал в репозиторий.
  • Проект еще не инициализирован как Node.js-пакет.
  • В редакторе или терминале открыта родительская папка вместо папки приложения.
  • В монорепозитории команда npm должна выполняться внутри конкретного workspace-пакета.

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

1

Проверьте текущую папку

Убедитесь, что терминал открыт в каталоге, где действительно находится package.json. Если файл есть в подпапке, перейдите в нее и повторите команду.

Команда
pwd
ls
2

Найдите package.json в проекте

Если вы не уверены, где лежит проект, найдите package.json и перейдите в найденный каталог. В Windows PowerShell используйте Get-ChildItem.

Команда
Get-ChildItem -Recurse -Filter package.json
3

Перейдите в найденный каталог проекта

Если package.json найден в подпапке, перейдите именно в нее перед запуском npm install или npm run. В монорепозиториях проверьте папки apps, packages, frontend или backend: команда часто должна выполняться не в корне репозитория, а внутри конкретного приложения.

Команда
cd path/to/project
npm install
4

Проверьте scripts в package.json

Когда package.json найден, убедитесь, что команда, которую вы запускаете, действительно объявлена в разделе scripts. Ошибка ENOENT говорит об отсутствии файла, а missing script — о том, что файл есть, но в нем нет нужной команды. Это разные проблемы, и исправляются они по-разному.

Команда
npm pkg get scripts
5

Создайте package.json, если это новый проект

Если проект новый и package.json еще не создавался, инициализируйте его. После этого установите зависимости.

Команда
npm init -y
npm install
6

Восстановите файл из git

Если package.json должен быть в репозитории, проверьте историю или попросите актуальную версию у команды. Не создавайте пустой package.json в существующем проекте без понимания зависимостей.

Команда
git status
git log -- package.json

Ошибка ENOENT означает, что npm пытается открыть файл, которого нет по указанному пути. В случае package.json почти всегда виноват не сам npm, а текущий каталог терминала: команда запущена выше, ниже или рядом с настоящим корнем проекта.

Сначала посмотрите на путь в тексте ошибки. Если npm пишет, что ищет C:\Users\...\package.json, значит именно эта папка сейчас считается рабочей. В правильном Node.js-проекте рядом с package.json обычно лежат package-lock.json, node_modules, src, vite.config.*, next.config.* или похожие файлы.

Частая ловушка появляется после скачивания архива с GitHub. Внутри архива может быть вложенная папка проекта, например project-main/project/package.json, а терминал открыт в project-main. В монорепозиториях ситуация похожая: корневой каталог может содержать несколько приложений, и команды нужно запускать внутри apps/web, packages/ui или другой конкретной папки.

Не создавайте новый пустой package.json в существующем проекте только ради того, чтобы ошибка исчезла. Такой файл не восстановит зависимости, scripts и версии пакетов. Если файл должен быть в репозитории, лучше найти его в истории git, перескачать проект или уточнить правильную папку запуска.

Диагностика по тексту ошибки

Если ошибка выглядит как ENOENT: no such file or directory, open '...\package.json', проверьте именно путь после слова open. Он показывает место, где npm ожидает файл. Если путь не совпадает с папкой вашего приложения, перейдите в правильный каталог и повторите команду.

Если package.json найден, но npm run dev пишет missing script: dev, это уже другая проблема. В таком случае файл есть, но в разделе scripts нет команды dev. Проверьте доступные команды через npm run или npm pkg get scripts.

Что делать в монорепозитории

В монорепозитории один репозиторий может содержать несколько Node.js-пакетов. Ищите package.json не только в корне, но и в подпапках apps, packages, frontend, backend, client или server. Если проект использует npm workspaces, корневой package.json может управлять несколькими пакетами, а запуск конкретного приложения выполняется командой вроде npm run dev -w apps/web.

После перехода в правильную папку выполните npm install, чтобы установить зависимости именно для этого проекта. Если в репозитории есть package-lock.json, не удаляйте его без причины: он фиксирует версии зависимостей и помогает воспроизвести рабочее окружение.

Если package.json действительно отсутствует

Для нового проекта создайте файл командой npm init -y, затем добавьте нужные зависимости. Для существующего проекта сначала проверьте git status, историю файла и ветку репозитория. Иногда файл отсутствует потому, что вы открыли не ту ветку, скачали неполный архив или забыли подтянуть submodule.

Если проект вам передали без package.json, попросите оригинальный файл у автора. Восстановить зависимости по одной папке node_modules ненадежно: там нет полного описания scripts, engine, workspaces и devDependencies.

Контроль после исправления

  • Команда dir package.json или ls package.json находит файл в текущей папке.
  • npm install завершается без ENOENT по package.json.
  • npm pkg get scripts показывает ожидаемые команды.
  • npm run dev, npm start или другая нужная команда запускается из правильной папки.
  • В редакторе открыт корень приложения, а не случайная родительская папка.
  • В монорепозитории выбрана правильная workspace-папка или указан параметр -w.

Что не делать

  • Не запускайте npm init -y в существующем проекте, пока не убедились, что package.json действительно отсутствует.
  • Не копируйте package.json из другого проекта: зависимости и scripts почти наверняка не совпадут.
  • Не удаляйте package-lock.json ради исправления ENOENT: эта ошибка не связана с lock-файлом.
  • Не устанавливайте зависимости глобально, если проблема в текущей папке проекта.

Источники

  1. docs.npmjs.com — проверено 27.05.2026
  2. docs.npmjs.com — проверено 27.05.2026
  3. nodejs.org — проверено 27.05.2026