Если проблема связана с пакетом, от которого вы напрямую зависите, вам следует обновить его напрямую и сохранить в процессе package.json
+, заблокировав его версию в package-lock.json
, выполнив что-то вроде npm install your-dependency@latest --save[-dev]
.Но будьте осторожны: могут произойти критические изменения, которые повредят ваш код (например, в случае, если в зависимости произошла основная версия обновления между некоторыми устаревшими и критическими изменениями).
Но если проблема связана с зависимостью одногоиз ваших зависимостей, самый лучший способ решить эту проблему - поднять проблему (возможно, с помощью PR, чтобы помочь им) с сопровождающим родительского пакета, а затем, когда они предоставляют обновление, обновить саму зависимость в вашем проекте.
Вы также можете использовать npm audit
для решения некоторых проблем (вероятно, не всех, и если версия зависимостей определенно требуется зависимостью, она не будет обновлять ее, потому что она может что-то сломать), ноЕдинственный лучший способ решить проблему для вас и для всех остальных - это получить сопровождающего модуля, который вы хотите обновить, для его зависимостей, когда / если они могут.
Переустановка всего не решит проблему, если зависимостьвсе еще уязвим.Установка волшебным образом не исправляет вещи, люди делают :-) Однако, что вы можете сделать, это использовать npm outdated
, чтобы вывести список всех пакетов с более новыми версиями и попытаться обновить их, один за другим, и посмотреть, есть ли ваши уязвимости.разрешаются после этого (npm audit
).
Еще одна вещь: обычно это плохая практика, чтобы пойти и изменить вещи вручную в package-lock.json
.Этот файл должен автоматически генерироваться только одним из ваших npm install
(или похожих) сценариев.Этот файл используется npm для разрешения списка точных версий зависимостей / подзависимостей при новой установке, и это действительно единственный лучший способ убедиться, что все люди, которые используют или работают в этом проекте, имеют одинаковую версию всехих зависимости, так что лучше быть правильными.Всегда совершайте свои package-lock.json
!