npm WindowsLinuxmacOSNode.jsnpm

npm: После удаления node_modules продолжается ошибка разрешения пакетов

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

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

После ручного удаления папки node_modules npm по-прежнему выдаёт ошибку разрешения дерева или устанавливает не те пакеты. Часто проблема находится в требованиях package.json, lock-файле, настройках peerDependencies, а не в содержимом удалённой папки.

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

#Как проявляется ошибка и когда применим способ

После ручного удаления папки node_modules npm по-прежнему выдаёт ошибку разрешения дерева или устанавливает не те пакеты. Часто проблема находится в требованиях package.json, lock-файле, настройках peerDependencies, а не в содержимом удалённой папки.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Несовместимые требованияДва пакета требуют разные версии одной peerDependency.В ERESOLVE перечислены конкретные версии пакетов и требуемые диапазоны.Подобрать совместимые версии зависимостей.
Конфигурация осталасьУдаление node_modules не меняет package-lock.json и .npmrc.После новой установки воспроизводится прежняя структура дерева.Проверить lock и настроенный реестр.

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

  1. 1. Остановите удаления и сохраните журналВ копии репозитория запустите установку один раз и запишите первую ошибку целиком, включая строки Found и Could not resolve dependency. Убедитесь, что работа ведётся рядом с нужным package.json. Не удаляйте package-lock.json: он помогает воспроизвести исходную ошибку.
  1. 2. Зафиксируйте настройки npmВ терминале проверьте версии и локальные настройки проекта, включая registry, legacy-peer-deps и omit. Если проект использует собственный .npmrc, прочитайте его без копирования токенов в сторонние сервисы. Результат позволит отличить конфликт версий от проблемы сети.
  2. Читают версии и безопасные параметры без изменения проекта
    Linux · Терминал (Bash)Команда
    Читают версии и безопасные параметры без изменения проекта.
    node --version
    npm --version
    npm config get registry
    npm config get legacy-peer-deps
  1. 3. Найдите реальный конфликтОткройте package.json и сравните версии пакетов, перечисленных в сообщении ERESOLVE. В npm explain ИМЯ_ПАКЕТА можно увидеть, кто зависит от пакета; если отсутствует дерево установки, используйте сообщение npm и lock-файл. Не подменяйте исследование установкой --force.
  2. Нужно заменить имя на конкретную зависимость из ошибки; не изменяет файлов
    Linux · Терминал (Bash)Команда
    Нужно заменить имя на конкретную зависимость из ошибки; не изменяет файлов.
    npm explain ИМЯ_ПАКЕТА
  1. 4. Проверьте lock-файл до чистой установкиСверьте package-lock.json и package.json. Если диапазон в package.json менялся, а lock нет, согласуйте их через npm install только на новой ветке Git. Если дерево не строится, сначала исправьте несовместимый диапазон, а затем повторите установку.
  2. Может поменять package-lock.json и запускать скрипты; только в копии доверенного проекта
    Linux · Терминал (Bash)С осторожностью
    Может поменять package-lock.json и запускать скрипты; только в копии доверенного проекта.
    npm install

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

  1. 5. Проведите чистую проверкуПосле исправления требований используйте npm ci на отдельной копии с согласованным lock-файлом. Эта команда удаляет текущий node_modules. Если npm ci не прошла, ошибка всё ещё в заданных версиях, а не в остатках удалённой папки.
  2. Только в тестовой папке; удаляет node_modules и устанавливает дерево заново
    Linux · Терминал (Bash)С осторожностью
    Только в тестовой папке; удаляет node_modules и устанавливает дерево заново.
    npm ci

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

  1. 6. Проверьте проектные тесты и зафиксируйте результатВыполните предусмотренную package.json команду test или build, проверьте итоговый package-lock.json и список новых версий. Если проблема вернулась, откатите изменения package.json и package-lock.json через сохранённую ветку, затем исследуйте конкретный конфликт по логу.

#Проверка результата и действия при повторении

Чистая установка проходит повторно без ERESOLVE и тесты проекта успешны. Изменение конфигурации должно воспроизводиться у другого разработчика по зафиксированному package-lock.json; не принимайте единственный удачный запуск за исправление.

Если на указанном шаге результат отличается, остановитесь и запишите первое полное сообщение об ошибке, версию инструментов и проверенное состояние до исправления. Не переходите к опасным действиям на действующем проекте: повторите проверку на отдельной копии, верните сохранённые файлы и только затем выбирайте следующую причину.

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

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

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