Come mantenere aggiornate le sue dipendenze NPM?

Dopo aver installato le dipendenze NPM, non ci occupiamo delle loro nuove versioni. Dopo alcuni mesi, ci rendiamo conto che il progetto è completamente obsoleto e deve essere aggiornato. Il problema è che molte dipendenze contengono modifiche sostanziali e l'aggiornamento diventa una vera seccatura.

Per evitare questo tipo di problemi, è importante aggiornare regolarmente. E invece di andare tu stesso a controllare ogni versione della dipendenza, puoi usare una delle tante soluzioni descritte qui:

npm-check-aggiornamenti

0788a4d8-3171-11e5-9881-8f7dcf634d14Attualmente nella versione 2.8.0, questo pacchetto NPM può essere utilizzato direttamente nella riga di comando se lo si installa in globale. Come puoi vedere a destra, devi solo toccare il NCU comando nella radice del tuo progetto e npm-check-aggiornamenti verificherà per te se esiste una versione più recente delle tue dipendenze NPM definite nel tuo pacchetto.json. Probabilmente è la soluzione più semplice in assoluto. (La pagina ufficiale NPM: npm-aggiornamento di controllo)

Nota: nonostante sia un comando globale utilizzabile in qualsiasi progetto, non ti consiglio di installarlo in pacchetti globali e nemmeno in altri pacchetti NPM. L'installazione in globale ti costringerà a utilizzare la stessa versione di NPM in tutti i tuoi progetti locali, mentre nessun progetto dipende da versioni diverse.

uptr

uptrUptr sembra NCU ma esegui il test dopo ogni tentativo di aggiornamento. Infatti, sutr proverà a sostituire la versione corrente con l'ultima di ogni dipendenza ed eseguirà i test dopo ogni tentativo. Se i test falliscono, eseguirà il rollback dell'aggiornamento e continuerà fino alla fine. È molto utile, perché quando usi uno strumento come NCU non hai idea se il tuo progetto continuerà a funzionare dopo l'aggiornamento. Qui, uptr verificherà con il tuo test automatico, quindi, è tua attività assicurarsi che il "npm test" (comando predefinito per eseguire il test) venga eseguito correttamente e completare la suite di test.

prossimo aggiornamento

È la suite di strumenti più completa. Non solo verifica se è possibile installare la versione più recente delle dipendenze NPM durante il superamento del test. Può anche guardare molti repository Github (come Greenkeeper che vedremo tra poco) grazie a prossimo aggiornamento, controlla se il tuo codice interromperà tutti coloro che dipendono da esso non rompere e recupera i commenti di commit tra due versioni di un pacchetto NPM utilizzando registro modificato.

Ogni strumento è utilizzabile separatamente. Questa suite può essere davvero utile per le aziende che utilizzano fortemente NodeJS e NPM, perché puoi controllare l'interazione tra tutti i tuoi pacchetti NPM e comprendere l'impatto di un aggiornamento.

custode del verde

greenkeeper.ioGreenkeeper è diverso dagli altri perché è più un Software as a service (aka Saas) che uno strumento locale. Il primo passo per utilizzare Greenkeeper è collegarlo al tuo account Github, quindi devi scegliere uno o più repository (dipende dal piano tariffario che scegli) che vuoi vedere guardato da Greenkeeper. E questo è tutto. Da questo punto, il bot Greenkeeper guarderà i repository selezionati e ti offrirà di aggiornare i pacchetti inviandoti pull-request! Queste richieste pull sono così:
Richieste di pull del robot GreenkeeperSta a te unire o meno la richiesta pull. Come consiglia Greenkeeper nella sua pagina principale, è meglio disporre di un servizio di Integrazione Continua per eseguire test automatici contro le richieste pull (come Travis CI or Coordinamento). In ogni caso, se vuoi controllare da solo o apportare alcune modifiche all'aggiornamento, sentiti libero di controllare il ramo della richiesta pull e aggiornarlo prima di unire. Questa soluzione è molto apprezzata da molti grandi progetti open source come Lodash, RICHIEDI, o Modernizr. Un contro, è necessario un Github pubblico o privato sul Web o nell'azienda.

Conclusione

Non ti consiglio di usare npm-aggiornamento di controllo, perché non tiene conto dei test automatizzati presenti nel tuo progetto. Le soluzioni più semplici ed efficienti restano per me uptr or prossimo aggiornamento, tranne che il prossimo aggiornamento sarà più interessante in un contesto aziendale reale in cui devi gestire le dipendenze NPM della tua azienda. Se stai cercando qualcosa che funzioni con Github e hai già un servizio di integrazione continua, custode del verde può essere la soluzione migliore.
By Matteo Bretone, CTO Js Repubblica