815 Stimmen

npm prüfen und bei Bedarf Paket aktualisieren

Wir müssen Karma Test Runner in TeamCity integrieren und dafür würde ich gerne sys-engineers kleines Skript (powershell oder was auch immer), das würde:

  1. die gewünschte Versionsnummer aus einer Konfigurationsdatei holen (ich denke, ich kann sie als Kommentar direkt in die karma.conf.js )

  2. prüfen, ob die definierte Version von Karma Runner im globalen Repo von npm installiert ist

  3. falls nicht, oder die installierte Version älter als gewünscht ist: die richtige Version auswählen und installieren

  4. ausführen: karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

Meine eigentliche Frage ist also: "Wie kann man in einem Skript prüfen, ob die gewünschte Version des Pakets installiert ist?". Sollte man die Prüfung durchführen, oder ist es sicher, einfach aufzurufen npm -g install jedes Mal?

Ich möchte nicht immer die neueste verfügbare Version prüfen und installieren, weil andere Konfigurationswerte inkompatibel werden könnten

1152voto

dublx Punkte 11638

Um zu prüfen, ob ein Modul in einem Projekt "alt" ist:

npm outdated

' veraltet ' prüft jedes Modul, das in package.json und sehen Sie nach, ob es eine neuere Version in der NPM-Registrierung gibt.

Zum Beispiel, sagen wir xml2js 0.2.6 (befindet sich in node_modules im aktuellen Projekt) ist veraltet, da eine neuere Version existiert (0.2.7). Sie würden sehen:

xml2js@0.2.7 node_modules/xml2js current=0.2.6

An Update alle Abhängigkeiten, wenn Sie davon überzeugt sind, dass dies wünschenswert ist:

npm update

Oder um eine einzelne Abhängigkeit zu aktualisieren, wie z.B. xml2js :

npm update xml2js

Zur Aktualisierung package.json Versionsnummern, fügen Sie die --save Flagge:

npm update --save

522voto

Erik Olson Punkte 5077

npm outdated identifiziert Pakete, die aktualisiert werden sollten, und npm update <package name> kann verwendet werden, um jedes Paket zu aktualisieren. Aber vor der npm@5.0.0, npm update <package name> aktualisiert die Versionen in Ihrer package.json nicht, was ein Problem darstellt.

Der beste Arbeitsablauf ist der folgende:

  1. Identifizieren Sie veraltete Verpackungen mit npm outdated
  2. Aktualisieren Sie die Versionen in Ihrer package.json
  3. Laufen lassen npm update um die neuesten Versionen der einzelnen Pakete zu installieren

Auschecken npm-check-updates um bei diesem Arbeitsablauf zu helfen.

  • Installieren Sie npm-check-updates con npm i npm-check-updates -g
  • Laufen lassen npm-check-updates um aufzulisten, welche Pakete veraltet sind (das ist im Grunde dasselbe, wie wenn man npm outdated )
  • Laufen lassen npm-check-updates -u um alle Versionen in Ihrer package.json zu aktualisieren (das ist die Zauberformel)
  • Laufen lassen npm update wie gewohnt, um die neuen Versionen Ihrer Pakete auf der Grundlage der aktualisierten package.json zu installieren

212voto

alecxe Punkte 437954

Außerdem gibt es ein "frisches" Modul namens npm-check :

npm-check

Prüfen Sie auf veraltete, falsche und nicht verwendete Abhängigkeiten.

screenshot of npm-check

Es bietet auch eine bequeme interaktive Möglichkeit, die Abhängigkeiten mit npm-check -u .

148voto

Matt Punkte 29530

Ein einfacher Schritt:

$ npm i -g npm-check-updates && ncu -u && npm i

Das ist alles. Alle Paketversionen in package.json werden die neuesten Hauptversionen sein.

Editer :

Was ist hier los?

  1. Installation eines Pakets, das Updates für Sie überprüft.

  2. Verwenden Sie dieses Paket, um alle Paketversionen in Ihrem package.json (-u ist die Abkürzung für --updateAll).

  3. Installieren Sie alle neuen Versionen der Pakete.

81voto

Watchmaker Punkte 4168
  • Um ein einzelnes lokales Paket zu aktualisieren:

    1. Ermitteln Sie zunächst Ihre veralteten Pakete:

      npm outdated

    2. Aktualisieren Sie dann das oder die gewünschten Pakete manuell:

      npm update --save <package_name>

Auf diese Weise ist es nicht notwendig, Ihre lokalen package.json Datei manuell.

Beachten Sie, dass der obige Befehl Ihr Paket auf die neueste Version aktualisiert.

  • Wenn Sie eine Version in Ihrem package.json Datei und tun:

    npm update <package_name>

    In diesem Fall erhalten Sie nur die nächste stabile Version (gewünscht) in Bezug auf die Version, die Sie in Ihrem package.json ファイル。

Und mit npm list <package_name> können Sie die aktuelle Version Ihres lokalen Pakets herausfinden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X