Ich habe kürzlich begonnen, ein Projekt in Node.js zu entwickeln. Natürlich sind die Pakete, die ich verwende, momentan ziemlich aktuell, da ich neu beginne und die neueste Version verwende, aber es gibt eine ziemlich hohe Versionsumsatzrate für die meisten Node.js-Pakete und oft werden bestimmte Funktionen verfügbar sein veraltet oder fallen gelassen, und natürlich werden Sicherheitslücken behoben.
Da die meisten meiner Pakete mithilfe der semantischen Versionssyntax angegeben werden ^1.2.3
(halten Sie sich an die angegebene Hauptversionsnummer, um Änderungen zu vermeiden), gehen wichtige Aktualisierungen über die aktuelle Hauptversion hinaus verloren.
Was ist ein umsichtiger Weg, um sicherzustellen, dass Sie mit Ihren Abhängigkeiten einigermaßen auf dem neuesten Stand sind? Ist es beispielsweise erforderlich, eine wöchentliche Überprüfung auf Aktualisierungen Ihrer Abhängigkeiten in Ihren Workflow aufzunehmen, um sicherzustellen, dass Sie nicht weit zurückfallen? Wäre es aus diesem Grund eine gute Idee, Abhängigkeiten zu minimieren, um den Aufwand beim Umgang mit Änderungen zu minimieren, wenn Sie unbedingt auf neuere Hauptversionen aktualisieren müssen?
npm outdated
Befehl angesehen? Ich habe es auch nie benutzt, aber sie sehen aus wie ein Anfang.Antworten:
Dies ist der Workflow, den ich derzeit für ein Projekt mit monatlichen Releases verwende.
Ziel ist es, überhaupt keine automatisierten Updates zu haben. Sie können Ihr System auf eine Weise beschädigen, die Sie nicht erwarten, und sehr wahrscheinlich, wenn Sie andere Änderungen vorgenommen haben, was nicht dazu beiträgt, das Problem herauszufinden.
Das Aktualisieren von Abhängigkeiten sollte ein bewusster Prozess sein. Wenn eine davon Ihr System beschädigt, sollten Sie wissen, welche.
Kleinere Updates, die brechen und unbemerkt bleiben, werden wahrscheinlich in Ihrem Sprint der Entwicklung oder Tests erfasst. Aus diesem Grund tun Sie dies nach der Veröffentlichung, da Sie so viel Zeit benötigen , um sie zu erkennen und auf dieses Problem zu reagieren, bevor Sie live gehen.
Beachten Sie, dass ich diesen Prozess tatsächlich in einem .NET + Nuget-Abhängigkeitsprojekt verwende, aber er gilt ziemlich genau für Node und npm / bower, Rails + Bundle usw.
Schließlich können Sie nette Befehle verwenden, die Ihnen beim Einfrieren / Auftauen von Abhängigkeiten helfen und diese sogar Ihrem Repo hinzufügen. Siehe
npm shrinkwrap
.quelle
Ich verwende eine andere Lösung mit einem anderen Ansatz: https://uptodatenpm.com. Sie sendet Ihnen wöchentlich einen Newsletter mit Informationen zu neuen Versionen der Abhängigkeiten Ihres Projekts, damit Sie entscheiden können, welche Deps aktualisiert werden sollen.
quelle