Как исправить уязвимый пакет npm в моем package-lock.json, который не указан в package.json? - PullRequest
0 голосов
/ 14 мая 2018

Github сообщает мне, что зависимость в моем файле package-lock.json уязвима и устарела. Проблема в том, что если я сделаю npm install или npm update, ни один из них не обновит зависимость в файле package-lock.json.

Я много гуглил, удалил файл и сделал npm install.

Если кто-нибудь может помочь решить эту проблему, я буду очень признателен. Рассматриваемый пакет - Hoek, которого на самом деле нет в моем файле package.json.

Большое спасибо заранее.

Ответы [ 7 ]

0 голосов
/ 27 ноября 2018

TLDR: обновите родительский пакет, используя npm i $PARENT_PKG_NAME.


Диагноз

npm audit покажет оба уязвимых пакета (обратите внимание, что вы 'Для этого вам понадобится файл package-lock.json, поэтому вам нужно будет запустить npm i), а также пакет, от которого он зависит (если применимо).(Обратите внимание, что вы также можете использовать npm ls $CHILD_PKG_NAME для просмотра его родительских зависимостей.

Попытка быстрого исправления

npm audit fix и npm audit fix --force стоит попробовать, ноиногда исправление необходимо выполнить вручную (см. ниже).

Исправление вручную

Скорее всего, родительский пакет уже исправил свои зависимости (вы можете проверить этозайдя на их GitHub и просмотрев последние коммиты (или просто посмотрев, исправляет ли это), вы можете просто запустить npm i $PARENT_PKG_NAME и он обновит ваш package-lock.json.

ПодтвердитьИсправление

Теперь вы можете проверить работоспособность, запустив npm audit и убедившись, что никаких уязвимостей не обнаружено. Зафиксируйте ваши изменения, отправьте их в GitHub, обновите ваши уведомления / оповещения, и их следует удалить.!

0 голосов
/ 01 июля 2019

После установки новых зависимостей выполните следующую команду для обновления файла package-lock.json:

npm update package-lock.json
0 голосов
/ 14 ноября 2018

Вы пробовали это: перейдите в корневой каталог проекта, удалите файл package-lock.json, папки node_modules и .cache, а затем npm install.

0 голосов
/ 13 октября 2018

Если у вас npm @ 6 или выше, вы можете использовать npm audit fix для решения проблем безопасности.

0 голосов
/ 21 сентября 2018

У меня была эта проблема, и я обнаружил, что это связано с тем, что на сервере, на котором я запускал npm, была установлена ​​старая версия npm - package-lock.json поддерживается только новыми версиями.

0 голосов
/ 31 июля 2018

Использование:

нпм и хук

npm установит последнюю версию hoek, и ваш package.lock.json будет обновлен.

0 голосов
/ 14 мая 2018

Похоже, что Hoek - это зависимость одной из ваших зависимостей (поэтому пакет, который есть в вашем package.json, требует его из своего собственного package.json).

Вы уже пытались удалить / переустановить и обновить зависимости проекта безуспешно, поэтому кажется, что для рассматриваемой зависимости пакета задана явная или максимальная версия.

Не видя package.json для каждой из ваших зависимостей, было бы сложно дать дальнейшие рекомендации о том, как форсировать обновление.

Edit: Чтобы помочь вам определить, какие пакеты используют какие зависимости, вы можете использовать команду NPM ls: https://docs.npmjs.com/cli/ls

Например, чтобы увидеть, какие пакеты используют Hoek: npm ls hoek

Редактировать 2: Как правильно указывает Ulysse BN, если у вас NPM версии 6 или новее, вы можете использовать npm audit fix, чтобы попросить NPM попытаться исправить уязвимости для вас.

Редактировать 3: Те, кто читает это, должны также проверить ответ JBallin ниже. Он расширяет информацию, которую я дал здесь, и является (на мой взгляд) более структурированным ответом, который лучше отвечает на вопрос ОП. Однако - если вы хотите быстро исправить - этого ответа должно быть достаточно.

...