npm LinuxWindowsnpm

npm: После npm ci отсутствует пакет, указанный в package.json

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

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

После npm ci пакет указан в package.json, но не найден в node_modules. Такое возможно для devDependencies при NODE_ENV=production, для optionalDependencies на неподдерживаемой платформе и при установке не из того каталога; это не обязательно ошибка npm.

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

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

После npm ci пакет указан в package.json, но не найден в node_modules. Такое возможно для devDependencies при NODE_ENV=production, для optionalDependencies на неподдерживаемой платформе и при установке не из того каталога; это не обязательно ошибка npm. Для начала проверьте используемую версию среды и точный текст ошибки на копии проекта, не меняя рабочий сервер.

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

Возможная причинаКак узнатьЧто делать
Отключены devDependenciesВ этой ситуации наблюдается конкретный диагностический признак. Сопоставьте его с журналом ошибки и результатом соответствующей проверки, прежде чем выбирать исправление.В CI установлено NODE_ENV=production или --omit=devНа стадии сборки включить dev, а в рабочем образе оставить только runtime-зависимости.
Не установлена optional зависимостьВ этой ситуации наблюдается конкретный диагностический признак. Сопоставьте его с журналом ошибки и результатом соответствующей проверки, прежде чем выбирать исправление.Пакет зависит от ОС/архитектуры, установка пропущенаПроверить поддержку платформы и журнал.
Команда запущена из другой папкиВ этой ситуации наблюдается конкретный диагностический признак. Сопоставьте его с журналом ошибки и результатом соответствующей проверки, прежде чем выбирать исправление.Вложенный пакет/monorepo имеет свой lock-файлЗапускать npm в нужном рабочем каталоге.

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

  1. 1. Проверьте, из какой папки запущен npmОткройте терминал из корня нужного проекта, где находятся package.json и package-lock.json. В Linux/macOS выполните pwd, в Windows PowerShell — Get-Location; отсутствие одного из файлов означает неверный каталог либо неполный проект.
  1. 2. Посмотрите тип отсутствующей зависимостиОткройте package.json в текстовом редакторе. Найдите имя пакета в dependencies, devDependencies или optionalDependencies; значение определяет, должен ли пакет присутствовать в рабочей установке.
  1. 3. Проверьте фактическое деревоИз той же папки выполните npm ls имя-пакета --depth=0. Код ошибки при отсутствии пакета и пустая строка в дереве помогут подтвердить, что нет физически установленной версии.
  1. 4. Посмотрите параметры omit и окружениеВыполните npm config get omit и проверьте NODE_ENV. Если dev-пакет требуется для сборки, npm ci под NODE_ENV=production может его опустить. Не переключайте настройки всей системы.
  2. Терминал в корне проекта, чтение конфигурации
    Linux · Терминал (Bash)Команда
    Терминал в корне проекта, чтение конфигурации. Ожидается перечисление omit либо пустая настройка.
    npm config get omit
  1. 5. Воспроизведите чистую установку в отдельной копииСкопируйте проект с lock-файлом в тестовый каталог и выполните npm ci --include=dev. Команда удаляет node_modules именно этой копии; на рабочем сервере нельзя использовать её без процедуры развёртывания.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)С осторожностью
    В тестовой копии с корректным package-lock.json; запускает доверенные установочные скрипты зависимостей.
    npm ci --include=dev

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 6. Уточните optional и платформуЕсли пакет находится в optionalDependencies, ознакомьтесь с журналом npm и поддерживаемой архитектурой. Не устанавливайте двоичный пакет не своей платформы; разработчик может предоставлять альтернативу.
  1. 7. Проверьте необходимый сценарий запускаВ копии выполните прежний npm run build или импорт отсутствующей зависимости. Если всё исправно, настройте отдельные шаги сборки и рабочей установки, сохраняя правила production-развёртывания.

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

Пакет обнаруживается через npm ls и требуемый сценарий сборки/запуска проходит; рабочий образ не содержит лишних dev-зависимостей без необходимости.

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

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

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

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