Как обрабатывать устаревшие пакеты, требуемые зависимостью в 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там. Я не пробовал это.

Другие вопросы по тегам