Cli: [BUG] npm update --depth bricht Abhängigkeiten

Erstellt am 17. Dez. 2019  ·  4Kommentare  ·  Quelle: npm/cli

Was warum

NPM meldet unerfüllte Abhängigkeit nach Durchführung eines rekursiven/tiefen Updates

Wann


Wo



  • n / A

Wie

Aktuelles Verhalten

Schritte zum Reproduzieren

  1. Erstellen Sie lokal einen Ordner und führen Sie npm init
  2. Installieren Sie ein Paket mit mehr als einer Abhängigkeitsebene, z. B. npm i -D @semantic-release/exec
  3. Warten Sie, bis eine ihrer tiefen Abhängigkeiten eine neuere Version erhält
  4. npm --depth 9999 update

Erwartetes Verhalten

  • Es sollte keine unerfüllten Abhängigkeiten geben. Aktualisierungen werden gemäß der package.json Datei ihrer Eltern oder einer beliebigen npm-shrinkwrap.json Datei ihres Vorfahren durchgeführt.
  • Mit anderen Worten, es sollte sich so verhalten, als ob es kein 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.

WHO



  • n / A

Verweise



  • n / A

Bug

Hilfreichster Kommentar

Anscheinend habe ich eine doppelte Ausgabe vorbereitet

Was warum

Befehl npm update --depth <number> verliert dev: true für aktualisierte devDependencies-Abhängigkeiten.

Wann

  • Immer wenn ich npm update --depth <number> für Pakete mit nicht frischen devDependencies-Abhängigkeiten verwende

Wo

  • npm öffentliches Register

Wie

Aktuelles Verhalten

Es verliert dev: true für aktualisierte devDependencies-Abhängigkeiten

Schritte zum Reproduzieren

  1. Nehmen Sie dieses Repo https://github.com/pahan35/npm-bugs
  2. Kassen-Filiale loses-dev-for-dev-deps
  3. npm i
  4. npm update --depth 7

Erwartetes Verhalten

Ich gehe davon aus, dass diese Aktion dev: true für aktualisierte devDependencies-Abhängigkeiten beibehalten sollte

Verweise

Möglicherweise verwandt mit #944

Alle 4 Kommentare

Anscheinend habe ich eine doppelte Ausgabe vorbereitet

Was warum

Befehl npm update --depth <number> verliert dev: true für aktualisierte devDependencies-Abhängigkeiten.

Wann

  • Immer wenn ich npm update --depth <number> für Pakete mit nicht frischen devDependencies-Abhängigkeiten verwende

Wo

  • npm öffentliches Register

Wie

Aktuelles Verhalten

Es verliert dev: true für aktualisierte devDependencies-Abhängigkeiten

Schritte zum Reproduzieren

  1. Nehmen Sie dieses Repo https://github.com/pahan35/npm-bugs
  2. Kassen-Filiale loses-dev-for-dev-deps
  3. npm i
  4. npm update --depth 7

Erwartetes Verhalten

Ich gehe davon aus, dass diese Aktion dev: true für aktualisierte devDependencies-Abhängigkeiten beibehalten sollte

Verweise

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen