‫Istruttore:
‫In questa lezione
‫parleremo di un sacco di
‫altre cose che dovresti sapere sul
‫lavoro con i pacchetti npm, come il versioning, l'aggiornamento o l'eliminazione di
‫pacchetti e anche alcune altre cose, quindi iniziamo.
‫La prima cosa di
‫cui voglio parlare in questo video sono questi numeri di versione dei nostri pacchetti.
‫La maggior parte dei pacchetti
‫su npm segue la cosiddetta notazione semantica della versione, il
‫che significa che i loro numeri di
‫versione sono sempre espressi con questi tre numeri.
‫Il primo qui è chiamato la versione principale.
‫Il secondo è chiamato la versione minore.
‫Il terzo è chiamato la versione patch.
‫C'è davvero un significato in questi tre numeri.
‫La versione della patch, che è solo quest'ultima qui,
‫è pensata solo per correggere i bug.
‫Diciamo che nella versione 1. 18, gli sviluppatori hanno trovato
‫un bug e quindi l'hanno corretto e
‫poi rilasciato 1. 18. 1.
‫Poi hanno trovato un altro bug e
‫poi ne hanno rilasciato 1. 18. 2 e così
‫via fino a raggiungere 1. 18. 11, che è
‫il numero di versione corrente.
‫Di nuovo, quest'ultimo qui è solo per correzioni di bug.
‫Dopodiché, abbiamo la versione minore.
‫La versione secondaria
‫introduce alcune nuove funzionalità nel
‫pacchetto, ma non include modifiche sostanziali.
‫Tutte le modifiche apportate a un nuovo numero di versione
‫saranno sempre compatibili con le versioni precedenti.
‫Se un giorno il team di nodemon, ad esempio,
‫decide di rilasciare la versione 1. 19, beh, questo
‫includerà alcune nuove funzionalità ma non
‫infrangerà il nostro codice.
‫E lo stesso ovviamente accade con questo qui.
‫Quindi, se un giorno, c'è Slugify 1. 4, allora il nostro
‫codice continuerà a funzionare allo stesso modo.
‫Non ci saranno modifiche sostanziali.
‫Semplicemente ci sarà qualcosa di
‫nuovo, quindi alcune nuove funzionalità, che non sono solo correzioni di bug.
‫Le correzioni di bug sono di nuovo per
‫la terza, quindi per la
‫versione patch, quindi le nuove funzionalità minori sono per la versione minore.
‫Poi, naturalmente, abbiamo la versione principale, che viene
‫aumentata solo ogni volta che
‫si tratta di una nuova versione enorme che può avere modifiche di rilievo.
‫Ad esempio, se arriva Slugify 2.
‫Bene, il nostro codice potrebbe non funzionare
‫più perché la funzione slugify che abbiamo qui,
‫ad esempio, potrebbe aver cambiato nome o
‫forse il parametro che si aspetta qui è diverso o le
‫opzioni potrebbero essere cambiate, o qualcosa
‫potrebbe essere cambiato che interromperà
‫la versione precedente .
‫Tieni presente che quando c'è una nuova
‫versione, di solito potrebbe influenzare il
‫codice che hai già.
‫Per questo motivo è importante
‫anche parlare di aggiornamento dei pacchetti.
‫Nel nostro pacchetto. json,
‫questo piccolo simbolo qui davanti
‫al numero di versione è ciò che
‫specifica quali aggiornamenti accettiamo per ciascuno dei pacchetti.
‫Questo simbolo qui, che npm specifica qui per
‫impostazione predefinita, significa che accettiamo patch e versioni minori.
‫Ora, come aggiorniamo effettivamente i pacchetti?
‫Bene, in realtà chiudiamo questo processo qui.
‫La prima cosa
‫che possiamo fare è controllare se ci sono pacchetti obsoleti.
‫Scriviamo npm obsoleto e questo dovrebbe darci effettivamente una
‫tabella con tutti i
‫pacchetti obsoleti.
‫Bene, in questo momento sono tutti aggiornati, quindi
‫non è successo davvero.
‫Quello che
‫voglio mostrarti ora è che possiamo effettivamente
‫installare un certo pacchetto con un certo numero di versione.
‫Facciamolo con Slugify e installiamolo
‫alla versione 1. 0. 0.
‫Npm install slugify e poi su 1. 0. 0.
‫Proviamolo.
‫Ora, infatti, abbiamo uno zero zero.
‫Quando ci passiamo sopra, in realtà dice
‫l'ultima versione 1. 3. 4, che è quello che avevamo.
‫Ma se ora eseguiamo npm
‫obsoleto, dovrebbe darcelo.
‫Vediamo che la corrente è 1. 0. 0.
‫Il ricercato è 1. 3. 4, perché questo
‫è quello che accettiamo perché ricorda,
‫che con questo qui, accettiamo tutte le patch e tutte
‫le versioni minori, ma ovviamente possiamo anche cambiarlo.
‫Ad esempio, possiamo impostarlo su questo simbolo qui.
‫Questo accetterà quindi solo le versioni di patch.
‫Questo è un po' più sicuro.
‫Se eseguiamo di nuovo npm obsoleto, vediamo
‫cosa otteniamo.
‫Ora il ricercato è solo 1. 0. 2, perché
‫ancora una volta accettiamo solo versioni minori.
‫Quindi 1. 3. 4 non
‫è accettato da noi perché, beh, non
‫accettiamo nessuna delle versioni minori,
‫quindi di nuovo, solo versioni di patch.
‫Se dovessi eseguire l'aggiornamento di npm slugify ora, vediamo cosa abbiamo
‫ottenuto allora.
‫Adesso siamo a 1. 0. 2.
‫Vedete che
‫è cambiato di nuovo per la mia configurazione
‫di aggiornamento qui per accettare versioni minori e patch.
‫Non solo i rilasci di patch come prima.
‫Se lo eseguiamo di nuovo
‫ora, dovrebbe effettivamente portarci
‫fino a 1. 3. 4, come abbiamo fatto prima.
‫Infatti, ci siamo.
‫Va bene, è così che aggiorniamo i pacchetti.
‫Ci sono altre configurazioni che
‫possiamo scegliere qui.
‫Possiamo dire, ad esempio, che vogliamo tutte le
‫versioni, quindi se a un certo punto c'è
‫una versione due e se non abbiamo
‫aggiornato i nostri pacchetti, la
‫nostra versione aumenterà automaticamente alla versione due.
‫Questa include tutte le
‫versioni, anche quelle con modifiche sostanziali.
‫Ma di solito non è una buona idea,
‫quindi di solito vado solo con questo che
‫è predefinito, o talvolta anche questo qui perché a un
‫certo punto, anche se una versione minore dovrebbe semplicemente introdurre
‫nuove funzionalità ma senza cambiamenti di
‫rilievo, sappiamo che a volte possono esserci bug che
‫gli sviluppatori non trovano, e quindi questi bug
‫si fanno strada nel
‫nostro codice e potrebbero violare il nostro codice.
‫Non lo vogliamo, ovviamente.
‫La versione più sicura è quella
‫di usare solo questa per le correzioni di bug.
‫In realtà teniamolo così qui, solo
‫a scopo dimostrativo.
‫Questo è ciò che devi
‫sapere sui numeri di versione e sull'aggiornamento.
‫Ma ovviamente possiamo anche eliminare i pacchetti.
‫Ora andiamo avanti e installiamo Express,
‫in modo da poter procedere ed eliminarlo successivamente.
‫Sono sicuro che puoi indovinare come possiamo farlo.
‫È molto facile.
‫Npm uninstall, quindi in realtà non si chiama delete.
‫Si sta davvero disinstallando.
‫Installiamo e disinstalliamo Express.
‫Ciò lo eliminerà quindi dalla nostra cartella
‫dei moduli del nodo e anche dalle nostre
‫dipendenze in un pacchetto. json file.
‫Ogni volta che decidiamo di non usare più un
‫modulo, beh, dovremmo sempre procedere e rimuoverlo,
‫o addirittura disinstallarlo.
‫Ora, come ultima cosa, voglio parlare
‫un po' della cartella dei moduli del nodo.
‫Questa cartella, che contiene
‫tutte le dipendenze del nostro progetto.
‫Supponiamo che tu voglia condividere il tuo codice
‫con qualcuno, o che tu, ad esempio,
‫desideri iniziare a lavorare su un
‫computer e poi passare a quello successivo.
‫Non condividerai mai questa cartella dei moduli del nodo
‫perché questo codice, puoi facilmente ottenerlo da npm.
‫Non c'è bisogno di andare avanti
‫e copiare tutto questo codice qui,
‫ad esempio, in un repository GitHub o in una cartella Dropbox, o
‫davvero da qualche parte in cui vuoi condividere il tuo
‫codice, perché questa cartella
‫qui come vedi ha tonnellate di cartelle
‫e ognuno di loro potrebbe avere tonnellate di file.
‫All'improvviso, potresti ritrovarti con
‫decine o centinaia di migliaia di file.
‫Non dovresti mai condividere questa
‫cartella e non controllarla mai nel tuo repository GitHub.
‫Diciamo che hai caricato questo codice sul tuo
‫account GitHub senza i moduli di questo nodo, oppure lo
‫hai messo in un Dropbox su
‫un computer e lo hai scaricato sull'altro.
‫Diciamo che ora abbiamo scaricato questo codice
‫qui, quindi senza moduli nodo.
‫Quindi eliminiamo quello ora e
‫finiamo con solo una normale cartella di progetto.
‫Come possiamo ora recuperare le nostre dipendenze o
‫la nostra cartella dei moduli del nodo?
‫Bene, è molto facile.
‫Tutto quello che dobbiamo fare è installare npm.
‫Quello che ha fatto è leggere il nostro pacchetto. json, leggi
‫le nostre dipendenze e poi scarica
‫di nuovo tutto in questa cartella, va bene.
‫Ora un pezzo importante di questo puzzle
‫è il lucchetto. json file.
‫Se lo apriamo, otteniamo un elenco di tutte
‫le versioni di tutti i pacchetti che
‫stiamo effettivamente utilizzando.
‫Ciò include le dipendenze delle nostre dipendenze.
‫Andiamo a Slugify, per esempio.
‫Slugify, e quindi qui vediamo che stiamo usando la
‫versione 1. 3. 4.
‫Questo è molto importante perché se condividi
‫il tuo codice, vuoi che l'altro sviluppatore o anche
‫te stesso utilizzi esattamente le
‫stesse versioni del pacchetto, in modo che
‫il tuo codice funzioni esattamente allo stesso modo per te
‫e per l'altro sviluppatore.
‫Per questo, i numeri di versione esatti sono
‫fondamentalmente scolpiti nella pietra in questo
‫pacchetto di blocco. json file.
‫Se condividi il tuo codice, indipendentemente dal fatto
‫che tu stia utilizzando GitHub o Dropbox o qualcosa del genere, condividi
‫sempre il tuo pacchetto. json e
‫il pacchetto lock. json perché
‫questi due file sono necessari
‫per consentire all'altro sviluppatore di ricostruire sostanzialmente
‫la cartella dei moduli del nodo.
‫Sì, penso che sia tutto ciò
‫che devi sapere sulle versioni dei
‫pacchetti, sull'aggiornamento, sulla disinstallazione e anche sulla condivisione del codice con
‫npm, package. json e pacchetto-lock. json.
‫Se c'è qualcos'altro che vuoi sapere,
‫puoi sempre chiedere di nuovo nel corso Q e A
‫e poi riceverai aiuto lì.