web-dev-qa-db-fra.com

Comment puis-je réparer un paquet npm vulnérable dans mon package-lock.json qui n'est pas répertorié dans le package.json?

Github me dit qu'une dépendance dans mon fichier package-lock.json est vulnérable et obsolète. Le problème est que si je fais npm install ou npm update, aucun d'eux ne met à jour la dépendance dans le fichier package-lock.json. 

J'ai fait beaucoup de recherches sur cela, j'ai également supprimé le fichier et terminé npm install.

Si quelqu'un pouvait aider à résoudre ce problème, je l'apprécierais énormément. Le paquet en question est Hoek, que je n'ai pas dans mon fichier package.json. 

Merci d'avance.

25
Raph117

On dirait que Hoek est une dépendance de l’une de vos dépendances (un paquet que vous avez dans votre package.json le demande à partir de son propre package.json).

Vous avez déjà essayé de supprimer/réinstaller et mettre à jour les dépendances de votre projet sans succès. Il semble donc que la dépendance du paquet en question possède une version explicite ou maximale spécifiée.

Sans consulter le package.json pour chacune de vos dépendances, il serait difficile de vous indiquer comment forcer une mise à jour.

Edit: Pour vous aider à identifier les packages qui utilisent quelles dépendances, vous pouvez utiliser la commande ls de NPM: https://docs.npmjs.com/cli/ls

Par exemple, pour voir quels paquets utilisent Hoek: npm ls hoek

Edit 2: Comme Ulysse BN le souligne correctement, si vous disposez de NPM version 6 ou ultérieure, vous pouvez utiliser npm audit fix pour demander à NPM de tenter de résoudre le problème pour vous.

10
Alex Mulchinock

Utilisation:

npm i hoek

npm installera la dernière version de hoek et votre package.lock.json sera mis à jour.

2
scorpion

J'ai eu ce problème et j'ai constaté que c'était parce que le serveur sur lequel j'exécutais npm disposait d'une ancienne version de npm sur it-package-lock.json n'est prise en charge que par les versions les plus récentes. 

0
jvvw

avez-vous essayé ceci: allez à la racine de votre projet, supprimez le fichier package-lock.json, les dossiers node_modules et .cache, puis npm install

0
CakeL

TLDR: Mettez à jour le package parent à l'aide de npm i $PARENT_PKG_NAME.


Diagnostic

npm audit révélera le paquet vulnérable (notez que vous aurez besoin d'un fichier package-lock.json pour cela, vous devrez donc exécuter npm i), ainsi que le paquet dont il dépend (le cas échéant). (Notez que vous pouvez également utiliser npm ls $CHILD_PKG_NAME pour voir ses dépendances parent.

Tentative de réparation rapide

npm audit fix et npm audit fix --force permettent d’essayer, mais il faut parfois régler le problème manuellement (voir ci-dessous).

Correction manuelle

Le paquet parent aura probablement déjà corrigé ses dépendances (vous pouvez le vérifier en consultant GitHub et en examinant les récents commits - ou tout simplement en vérifiant si cela résout le problème), afin que vous puissiez simplement exécuter npm i $PARENT_PKG_NAME et mettre à jour votre paquet. lock.json.

Vérifier le correctif

Vous pouvez maintenant vérifier que cela a fonctionné en exécutant npm audit et en vous assurant qu'aucune vulnérabilité ne se présente. Commettez vos modifications, envoyez-les à GitHub, actualisez vos notifications/alertes et elles devraient être parties!

0
JBallin

Si vous avez npm @ 6 ou version ultérieure, vous pouvez utiliser npm audit fix pour vos problèmes de sécurité.

0
Ulysse BN