Github sagt mir, dass eine Abhängigkeit in meiner Datei package-lock.json anfällig und veraltet ist. Das Problem ist, dass wenn ich dies tue npm install
oder npm update
, keiner von beiden die Abhängigkeit in der Datei package-lock.json aktualisiert.
Ich habe viel gegoogelt, die Datei gelöscht und fertig npm install
.
Wenn jemand helfen kann, dieses Problem zu lösen, würde ich es sehr schätzen. Das fragliche Paket ist Hoek, das ich eigentlich nicht in meiner package.json-Datei habe.
Vielen Dank im Voraus.
node.js
npm
package.json
package-lock.json
Raph117
quelle
quelle
Antworten:
Es hört sich so an, als ob Hoek eine Abhängigkeit von einer Ihrer Abhängigkeiten ist (ein Paket, das Sie in Ihrem package.json haben, benötigt es also von seinem eigenen package.json).
Sie haben bereits erfolglos versucht, Ihre Projektabhängigkeiten zu löschen / neu zu installieren und zu aktualisieren. Daher scheint für die betreffende Paketabhängigkeit eine explizite oder maximale Version angegeben zu sein.
Ohne die Datei package.json für jede Ihrer Abhängigkeiten zu sehen, ist es schwierig, weitere Ratschläge zum Erzwingen eines Updates zu geben.
Bearbeiten: Um festzustellen, welche Pakete welche Abhängigkeiten verwenden, können Sie den NPM-
ls
Befehl verwenden: https://docs.npmjs.com/cli/lsUm beispielsweise zu sehen, welche Pakete Hoek verwenden:
npm ls hoek
Bearbeiten 2: Wie Ulysse BN richtig hervorhebt, können Sie NPM mit NPM Version 6 oder höher
npm audit fix
bitten, die Schwachstellen für Sie zu beheben.Edit 3: Diejenigen, die dies lesen, sollten auch die Antwort von JBallin unten lesen. Es erweitert die Informationen, die ich hier gegeben habe, und ist (meiner Meinung nach) eine strukturiertere Antwort, die die Frage von OP besser anspricht. Wenn Sie jedoch eine schnelle Lösung wünschen, sollte diese Antwort ausreichen.
quelle
package.json
, die von der spezifischen (anfälligen) Version von Growl abhängt. Ihre Antwort ist auf dem richtigen Weg und Sie könnten sie vielleicht treffen, wenn Sie den Befehl teilen könnten, der anzeigt, welche Paketepackage.json
darin von dem verwundbaren abhängen, in dem sie angezeigt werdenpackage-lock.json
.TLDR: Aktualisieren Sie das übergeordnete Paket mit
npm i $PARENT_PKG_NAME
.Hinweis
Wenn Sie Abhängigkeiten aktualisieren, sollten Sie das CHANGELOG auf wichtige Änderungen überprüfen.
Diagnose
npm audit
zeigt sowohl das anfällige Paket an (beachten Sie, dass Sie hierfür eine package-lock.json-Datei benötigen, damit Sie es ausführen müssennpm i
), als auch das Paket, von dem es abhängig ist (falls zutreffend). Beachten Sie, dass Sie auch dienpm ls $CHILD_PKG_NAME
übergeordneten Abhängigkeiten anzeigen können.Schnellkorrekturversuch
npm audit fix
undnpm audit fix --force
sind einen Versuch wert, aber manchmal muss die Korrektur manuell durchgeführt werden (siehe unten).Manuelle Korrektur
Höchstwahrscheinlich hat das übergeordnete Paket bereits seine Abhängigkeiten behoben (Sie können dies überprüfen, indem Sie zu ihrem GitHub gehen und die letzten Commits überprüfen - oder nur sehen, ob dies das Problem behebt), sodass Sie es einfach ausführen
npm i $PARENT_PKG_NAME @$NEW_VERSION
und Ihre Paketsperre aktualisieren können .json.Wenn der Elternteil die Sicherheitsanfälligkeit nicht behoben hat
Wenn der Betreuer nicht zu reagieren scheint, können Sie ein alternatives Paket verwenden, das dasselbe erreicht, oder das Paket verzweigen und die Sicherheitsanfälligkeit selbst aktualisieren.
Überprüfen Sie Fix
Sie können jetzt überprüfen, ob es funktioniert hat, indem Sie ausführen
npm audit
und sicherstellen, dass keine Schwachstellen angezeigt werden. Übernehmen Sie Ihre Änderungen, senden Sie sie an GitHub, aktualisieren Sie Ihre Benachrichtigungen / Warnungen und sie sollten verschwunden sein!quelle
Wenn Sie npm @ 6 oder höher haben, können Sie diese
npm audit fix
für Ihre Sicherheitsprobleme verwenden.quelle
Verwenden:
npm installiert die neueste Version von hoek und Ihre package.lock.json wird aktualisiert.
quelle
Ich hatte dieses Problem und stellte fest, dass der Server, auf dem ich npm ausführte, eine alte Version von npm auf it-package-lock hatte. Json wird nur von neueren Versionen unterstützt.
quelle
Haben Sie dies versucht: Gehen Sie zu Ihrem Projektstamm, löschen Sie die
package-lock.json
Dateinode_modules
und die.cache
Ordner und dannnpm install
.quelle
Verwenden Sie zum Überprüfen anfälliger npm-Pakete einfach die folgenden Befehle:
Um anfällige npm-Pakete zu reparieren, verwenden Sie einfach die folgenden Befehle, um auch package-lock.json zu reparieren:
quelle
Bearbeiten Sie
package-lock.json
manuell und aktualisieren Sie die anfällige Paketversion auf die feste und verwenden Sie sie dannDadurch werden die Pakete entsprechend installiert,
package-lock.json
indempackage.json
zuerst ignoriert wird . Dann benutzewieder, um sicher zu sein, ob es richtig gemacht wird. Wenn dies nicht hilft, verwenden Sie andere vorgegebene Lösungen.
Weitere Informationen hier:
https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable
oder hier: https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
quelle
Führen Sie nach der Installation neuer Abhängigkeiten den folgenden Befehl aus, um die Datei package-lock.json zu aktualisieren:
quelle