Как обрабатывать устаревшие пакеты, требуемые зависимостью в package-lock.json?
Допустим, у меня есть зависимость с уязвимостью. На GitHub мне говорят : «Обновите some_dep до версии 2.2.3 или новее».
Однако все усложняется, когда я вижу, что это обязательная зависимость требуемой зависимости и т.д.
бежать
npm ls some_dep
увидеть:
└─┬ really_popular@5.0.0
└─┬ someotherlibrary@0.26.0
└─┬ something_else@12.8.17
└─┬ snazzypackage@1.2.7
└── some_dep@1.4.3
А нужная версия @1.4.3 устарела с уязвимостью.
Если я побегу
npm install some_dep@2.2.3
, это делает зависимости в моем обновлении для включения
"some_dep": "^2.2.3"
. Раньше в моем не было, так как это была зависимость
really_popular
упаковка. Это было только в . Так хочу ли я в своем
package.json
когда это не является прямой зависимостью моего проекта? Не кажется правильным иметь его там. Также у меня все еще будет старая версия в
package-lock.json
для
snazzypackage
необходимая зависимость. Так что, похоже, у меня будут обе версии
some_dep
теперь и проблема все еще будет там.
Как правильно поступить в этой ситуации?
1 ответ
В итоге я обновил родительскую зависимость, которую я дал здесь псевдонимом
really_popular
. Я откладывал это, потому что это было большое изменение версии, и требовалось, чтобы другие пакеты были изменены на новую версию, и это потребовало много обновлений моего кода. Но я почувствовал и получил рекомендации, что обновление до новой версии важно, если есть уязвимости.
Но если это не вариант, другое предложение, которое я иду, заключалось в том, чтобы перейти к пакету родительского отдела, например
node_modules/snazzypackage/package.json
и изменить версию
some_dep
там. Я не пробовал это.