#Что означает ошибка
npm audit
npm audit показывает уязвимости в зависимостях. Используйте npm audit fix, обновляйте пакеты и оценивайте реальную применимость.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Устаревшие пакеты | Обновление исправления доступно для прямой зависимости. | Установите совместимую версию и запустите тесты. |
| Транзитивные зависимости | Риск приходит через пакет другой зависимости. | Определите цепочку npm explain и обновите родительский пакет. |
| Ложные срабатывания | Предупреждение не применимо к текущему использованию. | Оцените сценарий и документируйте исключение. |
| Заброшенный пакет | Пакет заброшен и исправления нет. | Выберите поддерживаемую замену или ограничьте функцию. |
#Пошаговое решение
- Сохраните отчёт об уязвимостяхВ терминале корня проекта выполните
npm auditи отдельноnpm audit --json > audit-report.jsonпри необходимости передачи разработчику (проверьте отчёт на приватные данные). Запишите затронутые пакеты, уровень серьёзности, уязвимые версии и наличие исправления. Число предупреждений само по себе не равно фактическому риску приложения. - Проверьте прямые и транзитивные зависимостиОткройте
package.jsonиpackage-lock.json, используйтеnpm explain ИМЯ_ПАКЕТА, чтобы понять цепочку. Уточните, затрагивает ли проблема рабочее приложение или только сборочные инструменты, и применимо ли описанное воздействие к вашей архитектуре. - Обновляйте совместимые версии с возможностью откатаСохраните изменения проекта в Git, затем сначала выполните
npm audit fixбез--forceв отдельной ветке; изучите изменения lock-файла и запустите тесты. Если требуется несовместимая основная версия, запланируйте отдельное обновление и проверку документации;npm audit fix --forceне применяйте автоматически. - Проверьте остаточный рискПосле тестов повторите
npm audit, сравните предупреждения и зафиксируйте причину оставшихся. При отсутствии исправления рассмотрите замену пакета или временное ограничение уязвимой функции. Не принимайте успешную установку зависимостей за доказательство безопасности.
#Если не помогло
Не используйте npm audit fix --force без проверки: он может сломать совместимость.
#Если проблема осталась
Если «npm audit: vulnerabilities found — как исправить уязвимости» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.