2017-03-21 8 views
0

Wenn ich Knoten oder ein Paket aktualisiere, wird es Auswirkungen auf die Anwendungen haben, die derzeit von der vorherigen Knoten-/Paketversion abhängig sind, die ich hatte? Wenn ja, wie behebe ich das? Vielleicht wie eine virtuelle Umgebung :)Node.js Update und Paket-Update

+0

Was meinst du mit „dieses Problem beheben?“ Möchten Sie verhindern, dass derzeit bereitgestellte Anwendungen beeinträchtigt werden? –

Antwort

1

Sie sollten das Update von 2 Standpunkten aus betrachten. 1. Knoten selbst 2. Aktualisierung NPM Pakete

Zum Beispiel gibt es den Knoten LTS, die zu diesem Zeitpunkt 6.1.10 ist und dann gibt es v7.7.3. Wenn Sie totale Stabilität wünschen, dann verwenden Sie das LTS. Wie oben schon erwähnt, kann der Upgrade von Node ein langer Prozess sein, wenn Sie ein System auf einer älteren Version haben.

Wenn Sie jedoch die neue async/await (asynchrone Funktionen) testen möchten, die bereits in 7.7.3 ist und offiziell in 7.8 veröffentlicht werden soll, dann ist 7.7.3 der richtige Weg. Aber denken Sie daran, dass einige Dinge vielleicht nicht so funktionieren, wie Sie denken, dass sie sollten, oder Sie vielleicht einige wackelige Ergebnisse bekommen.

Beachten Sie auch, dass das Node-Update je nach Server oder System unterschiedlich funktioniert und lesen Sie die Dokumentation für das jeweilige System, das Sie aktualisieren müssen.

NPM ist ein anderes Ballspiel. Sie sind auf viele verschiedene Programmierer oder Gruppen von Programmierern angewiesen. Das Paket hängt von ihren Fähigkeiten und dem Wunsch ab, die Rückwärtskompatibilität beizubehalten. Die meisten Paket-Ersteller sind wirklich gut darin. Manche sind nicht.

Nehmen Sie ein Beispiel.MongoDB issued a really new driver das ist ein unglaubliches Upgrade von seiner vorherigen. Der neue Treiber enthält ES6 und in Verbindung mit dem co package funktioniert es grundsätzlich mit Versprechen.

Die Aktualisierung dieses Pakets für MongoDB war für mich essentiell. Aber es behält meinen vorherigen Code auch, (obwohl viele davon jetzt überflüssig sein können!)

Also, wenn Sie über die Aktualisierung von Knoten denken .. es ist nicht das gleiche wie NPM-Module aktualisieren. Aber wenn Sie möchten, können Sie zu unserem Projektstamm gehen, wo package.json existiert und einfach npm update eingeben und alle Pakete werden aktualisiert. You can update to only a specific version - take a look here.

Denken Sie auch daran, NPM selbst muss auch von Zeit zu Zeit aktualisiert werden.

Also zusammenfassend:

  1. Knoten Version - entscheiden, welches basierend auf Bedürfnisse, Anforderungen und Ihre eigenen Server.
  2. NPM als NPM muss auch von Zeit zu Zeit aktualisiert werden
  3. NPM-Pakete können ständig mit npm update aktualisiert werden oder nur auf eine bestimmte Versionsnummer basierend auf der obigen URL aktualisieren.

nicht so verwirrend, wie es scheint zunächst einmal eine gerade alles nach unten bekommt :)

Viel Glück

0

Es ist möglich, dass Sie ein Paket haben, das von einem anderen Paket verwendet wird, das eine Versionsänderung könnte es brechen. Es gibt mehrere Möglichkeiten, wenn es sich um ein persönliches Projekt handelt, dann müssten Sie entweder die korrekte Version des Pakets neu installieren oder nachsehen, ob für die Pakete, die kaputt gegangen sind, andere Updates verfügbar sind.

0

Es sollte nicht, weil npm gemacht wurde, um dieses Problem zu lösen: jedes Projekt hat seine eigenen Abhängigkeiten, und es ist völlig unabhängig von anderen Projekten.

Mit einem Wort, was Sie ändern, egal, Sie npm install in Ihrem Projekt zu tun, npm das Abhängigkeitsproblem von selbst beheben (von Ihrem Projekt package.json Überprüfung)

0

npm-Pakete manchmal oder bestimmtes deprecate ändern Funktionen & Funktionalitäten in neueren Versionen. Wenn beim Aktualisieren eines Pakets etwas nicht mehr funktioniert, müssen Sie in der Dokumentation des aktualisierten Pakets herausfinden, wie es wieder funktioniert. Viele Pakete enthalten möglicherweise Informationen zur Laufzeit/Fehler in der Konsole über Funktionen, die veraltet sind oder die in zukünftigen Versionen als veraltet markiert wurden.

npm wird bestimmte Versionen der Abhängigkeiten eines Pakets herunterladen (und daher können Sie oft mehrere Versionen eines bestimmten Pakets in einem Projekt haben), so dass Sie sich keine Gedanken über die Abhängigkeiten der zu aktualisierenden Pakete machen müssen. nur über die Änderungen des Pakets selbst.

Bestimmte Versionen des npm-Pakets unterstützen nur bestimmte Versionen von Node, so dass beim Aktualisieren der Knotenversion einige Pakete aktualisiert werden müssen. Wenn Sie die Knotenversion wechseln, wird auch die npm-Version gewechselt, die dann die korrekte Version des Pakets pro Knotenversion installiert.

Einige Node.js-Funktionen funktionieren möglicherweise nicht mehr, wenn Sie Node.js aktualisieren. In diesen Fällen müssen Sie in den Node.js-Dokumenten nach Hilfe suchen. Manchmal ist das Aktualisieren von Node.js von einer alten Version auf eine neue Version in einem Projekt eine große und langwierige Aufgabe.