NPM meldet unerfüllte Abhängigkeit nach Durchführung eines rekursiven/tiefen Updates
npm --depth 9999 update
npm ls
viele fehlende/nicht erfüllte Abhängigkeiten, zum Beispiel:
├─┬ @semantic-release/[email protected]
│ ├── @semantic-release/[email protected] deduped
│ ├── [email protected] deduped
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ UNMET DEPENDENCY [email protected]
npm ERR! missing: [email protected], required by @semantic-release/[email protected]
npm init
npm i -D @semantic-release/exec
npm --depth 9999 update
package.json
Datei ihrer Eltern oder einer beliebigen npm-shrinkwrap.json
Datei ihres Vorfahren durchgeführt.package-lock.json
gäbe, und alle Abhängigkeiten auflösen, nach Bedarf installieren/aktualisieren/entfernen und dann die Sperrdatei mit dem aufgelösten Baum aktualisieren.Anscheinend habe ich eine doppelte Ausgabe vorbereitet
Befehl npm update --depth <number>
verliert dev: true
für aktualisierte devDependencies-Abhängigkeiten.
npm update --depth <number>
für Pakete mit nicht frischen devDependencies-Abhängigkeiten verwendeEs verliert dev: true
für aktualisierte devDependencies-Abhängigkeiten
loses-dev-for-dev-deps
npm i
npm update --depth 7
Ich gehe davon aus, dass diese Aktion dev: true
für aktualisierte devDependencies-Abhängigkeiten beibehalten sollte
Möglicherweise verwandt mit #944
Ich habe auch die Erfahrung gemacht, dass npm update
das dev
Flag für die Abhängigkeiten vergisst, wenn --depth
größer als 0 ist. Vielleicht ist es für eine geringere Tiefe nicht notwendig?
Ich habe herausgefunden, dass das Dev-Flag nach der Neuinstallation der Node-Module wiederhergestellt wird ( rm -rf node_modules; npm install
)
Ich sehe das gleiche Problem beim Verlieren des Flags dev
nach der Verwendung von npm update --depth
aber nur für Dev-Abhängigkeiten meines Projekts, die echte Abhängigkeiten von einer anderen Abhängigkeit sind.
In meinem Fall fügt eine andere Abhängigkeit "@types/node" als Abhängigkeit hinzu, aber in meinem Projekt hat es als Dev-Abhängigkeit:
package.json der Abhängigkeit "a":
{
name: "a",
dependencies: {
"@types/node": ">=5.10"
}
}
Mein Projekt:
{
dependencies: {
"a": "1.0.0"
},
devDependencies: {
"@types/node": "^12.0.0",
"somethingElse": "1.0.0"
}
}
nach npm update --depth=99
das Dev-Flag für somethingElse
in Ordnung, aber für @type/node
ist es falsch
edit: npm install
scheint die @types/node
als Dev-Abhängigkeit im Root + als Abhängigkeit im verschachtelten node_module an der Komponente "a" zu speichern.
npm update
installiert es nur einmal als Abhängigkeit im Root
Hilfreichster Kommentar
Anscheinend habe ich eine doppelte Ausgabe vorbereitet
Was warum
Befehl
npm update --depth <number>
verliertdev: true
für aktualisierte devDependencies-Abhängigkeiten.Wann
npm update --depth <number>
für Pakete mit nicht frischen devDependencies-Abhängigkeiten verwendeWo
Wie
Aktuelles Verhalten
Es verliert
dev: true
für aktualisierte devDependencies-AbhängigkeitenSchritte zum Reproduzieren
loses-dev-for-dev-deps
npm i
npm update --depth 7
Erwartetes Verhalten
Ich gehe davon aus, dass diese Aktion
dev: true
für aktualisierte devDependencies-Abhängigkeiten beibehalten sollteVerweise
Möglicherweise verwandt mit #944