✅ Ответ / Решение

В 90% случаев проблемы решает полная переустановка зависимостей. Удалите папку node_modules и файл package-lock.json, очистите кэш командой npm cache clean --force, а затем заново выполните npm install.

Вы скачали чужой проект с GitHub, ввели npm install, а консоль взорвалась красными строками ERR!. Или вчера ваш локальный сервер работал, а сегодня npm run dev или npm start выкидывает ошибку и завершает процесс. Экосистема Node.js славится тем, что зависимости часто конфликтуют друг с другом, особенно при смене операционной системы или версии движка.

Способ 1: Ядерный сброс (Решает 90% проблем с npm install)

Самая частая причина ошибок — поврежденное дерево зависимостей. Пакеты скачались криво или файл блокировки конфликтует с вашей ОС.

  1. Остановите все запущенные терминалы.
  2. В корневой папке проекта удалите папку node_modules.
  3. Обязательно удалите файл package-lock.json (но не удаляйте package.json!).
  4. Откройте терминал и очистите кэш самого пакетного менеджера: npm cache clean --force
  5. Установите все пакеты с чистого листа: npm install

Способ 2: Ошибка "EADDRINUSE" при npm start

Если при запуске сервера (часто в React или Express) вы видите ошибку Error: listen EADDRINUSE: address already in use :::3000, это значит, что порт уже занят.

  1. Это происходит, когда вы закрыли окно терминала, но сам скрытый процесс Node.js остался висеть в оперативной памяти компьютера.
  2. В Windows: Откройте командную строку и введите taskkill /F /IM node.exe. Это жестко убьет все скрытые процессы Node.
  3. В Mac/Linux: Введите killall node.
  4. Снова введите npm start — сервер успешно запустится.

Способ 3: Конфликт версий Node.js (Несовместимость)

Некоторые старые проекты используют библиотеки (например, node-sass), которые намертво привязаны к старым версиям Node.js (например, v12 или v14). Если у вас установлена новая Node v20, npm install будет выдавать ошибки компиляции C++.

  • Решение: Установите утилиту NVM (Node Version Manager). Она позволяет переключать версии Node.js на вашем компьютере одной командой (например, nvm use 14). Посмотрите в документации проекта, какая версия Node требовалась изначально, и используйте её.
⚠️ В терминале часто появляется желтое предупреждение "X vulnerabilities found", предлагающее ввести npm audit fix --force. Никогда не делайте этого на рабочих проектах! Флаг --force принудительно обновит мажорные версии библиотек (например, с v4 на v5), что гарантированно сломает ваш код из-за несовместимости функций.
ℹ️ Из практики

Если npm install зависает на этапе "idealTree:lib: sill idealTree buildDeps", проблема может быть в вашем провайдере или блокировках. Попробуйте сменить источник скачивания пакетов на зеркало или просто перезагрузить роутер/включить VPN.

Читайте также: Как сохранить исправленный код на GitHub

Частые вопросы

❓ В чем разница между npm start и npm run dev?

npm start — это стандартная команда, которая часто используется для запуска готового приложения в production-среде. npm run dev — это кастомный скрипт, прописанный разработчиком в package.json, который запускает проект в режиме разработки (с отслеживанием изменений и перезагрузкой страницы).