2014-07-11 15 views
20

Non riesco a trovare informazioni su come npm funzioni con le diramazioni all'interno di un repository.npm pubblica la patch per la versione principale precedente

Supponiamo un pacchetto NPM è attualmente di versione in: 1.0.5

Un cambiamento importante richiede un cambio di versione da 1.0.5 =>2.0.0

Alcuni continuano ad usare 1.xx per evitare rotture.

Se un bug viene scoperto in 1.0.5 ha bisogno di essere fissato per il 1.xx utenti che richiedono il cambiamento di versione da 1.0.5 =>1.0.6

In effetti , questa è ramificazione. Farei un ramo git per 1.x.x gli utenti e continuare a usare branch master git per 2.x.x

Ma come funziona questo in sintonia con NPM? Devo pubblicare una versione precedente di npm 1.0.6? In tal caso, non 1.0.6 diventa l'ultimo, mentre in realtà 2.0.0 dovrebbe essere l'impostazione predefinita quando si esegue npm install.

Non riesco a trovare informazioni relative al ramo per npm. Sono sicuro che quanto sopra è una situazione comune ma non riesco a trovare alcuna informazione. Per favore qualcuno può indicarmi la giusta direzione.

+0

stesse preoccupazioni qui. Ti dispiacerebbe postare una risposta con quello che hai finito? – naugtur

risposta

31

Sei sulla buona strada - si desidera pubblicare [email protected] senza aggiornare il tag latest. È possibile farlo fornendo un argomento --tag <tagname>-npm publish -

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 

Finché si fornisce un argomento --tag <tagname>-npm publish, il tag latest non verrà aggiornato, e le persone che utilizzano npm install <package> o npm install <package>@latest sarà ancora ottenere il 2 .x versione.

Si noti che il tagname deve condividere uno spazio dei nomi con i numeri di versione, quindi è meglio scegliere un tagname che non assomigli a una versione di semere; evitare '1.0.6' o 'v1.0.6'.

Fonte: https://docs.npmjs.com/cli/publish e: https://docs.npmjs.com/getting-started/using-tags

+1

Grazie. Questa è una bella descrizione – naugtur

+0

nessun problema. Vieni al numero di rilascio di npm se hai altre domande - controllo solo SO raramente, e al github ci sono veri esperti di 'npm' ;-) –

Problemi correlati