2014-07-11 4 views
20

Ich kann nicht scheinen, Informationen zu finden, wie npm mit Zweigen in einem Repository arbeitet.npm Veröffentlichen Patch für ältere Hauptversion

Angenommen, ein npm Paket derzeit bei versioniert: 1.0.5

Eine wesentliche Änderung 2.0.0

Einige Benutzer weiterhin eine Versionsänderung von 1.0.5 => erfordert Verwendung 1.xx um zu vermeiden, Änderungen zu brechen.

Wenn ein Fehler entdeckt wird in 1.0.5 es muss festgelegt werden für die 1.xx Anwender, die Versionsänderung von 1.0.5 =>1.0.6

Effektiv , das ist verzweigend. Ich würde für 1.x.x Benutzer git branch machen und weiterhin mit git Masterzweig für 2.x.x

Aber wie paßt das mit npm? Soll ich eine ältere npm Version 1.0.6 veröffentlichen? In diesem Fall nicht 1.0.6 werden die neuesten, während eigentlich 2.0.0 sollte der Standardwert sein, wenn Sie npm install tun.

Ich kann keine branchenbezogenen Informationen für npm finden. Ich bin mir sicher, dass das obige eine allgemeine Situation ist, aber ich kann einfach keine Informationen finden. Bitte kann mir jemand in die richtige Richtung zeigen.

+0

Gleiche betrifft hier. Würde es Ihnen etwas ausmachen, eine Antwort mit dem zu schreiben, was Sie getan haben? – naugtur

Antwort

31

Sie befinden sich auf dem richtigen Weg - Sie möchten [email protected] veröffentlichen, ohne den Tag latest zu aktualisieren. Sie können dies tun, indem ein --tag <tagname> Argument npm publish Versorgung -

cd project 
git checkout old-branch 
grep version package.json 
    "version": "1.0.5", 
[make changes] 
git commit 
npm version patch 
grep version package.json 
    "version": "1.0.6", 
npm publish --tag old-version 

Solange Sie ein --tag <tagname> Argument npm publish, der latest Tag liefern wird nicht aktualisiert werden, und die Menschen npm install <package> oder npm install <package>@latest verwenden, werden immer noch die 2 .x Version.

Beachten Sie, dass der Tagname einen Namespace mit Versionsnummern teilen muss. Wählen Sie daher am besten einen Tagnamen, der nicht wie eine Semver-Version aussieht. vermeide '1.0.6' oder 'v1.0.6'.

Quelle: https://docs.npmjs.com/cli/publish und: https://docs.npmjs.com/getting-started/using-tags

+1

Danke. Das ist eine nette Beschreibung. – naugtur

+0

kein Problem. Komm zu dem npm issue tracker wenn du weitere Fragen hast - ich überprüfe SO nur selten, und bei github gibt es echte 'npm' Experten ;-) –

Verwandte Themen