Utilizza il comando: npm install package name o npm i package name I pacchetti installati localmente vengono visualizzati nella directory node_module nella directory corrente Se il pacchetto installato localmente ha una CLI, npm inserirà il suo script CLI in node_modules/.bin e utilizzerà il comando npx per chiamarlo.
1.2 Installazione globale
I pacchetti installati a livello globale vengono posizionati in una directory globale speciale. Utilizza il comando npm install --global package name o npm i -g package name. Il pacchetto installato a livello globale non è disponibile per tutti i progetti, fornisce solo strumenti CLI globali. Nella maggior parte dei casi non è necessario installare il pacchetto a livello globale.
1.3 Comando di installazione
Dipende dall'ambiente di produzione npm i nome del pacchetto npm i --salva il nome del pacchetto npm i -S nome del pacchetto Installare le dipendenze nell'ambiente di sviluppo npm i --save-dev nome del pacchetto npm i -D nome del pacchetto
1.4. Quando si utilizza nodejs per importare un modulo, se il percorso del modulo non inizia con ./ o.../, node penserà che il modulo importato provenga dalla directory node_modules.
1.5.npm
Configura i comandi CLI di uso comune nel campo script di package.json e utilizza il nome dello script di esecuzione npm per eseguire lo script. npx può essere omesso nello script.
2. Problemi passati con npm:
Le directory delle dipendenze sono profondamente annidate: in passato, le dipendenze npm erano annidate e il sistema Windows non poteva supportare directory troppo profonde.
Velocità di download lenta: a causa dei livelli di annidamento profondi, i download dei pacchetti possono essere eseguiti solo in serie;
L'output della console è complesso: stampa molti dettagli del pacchetto
Problema di trapianto del progetto: in passato era presente solo il file di configurazione package.json, ma nessun file package-lock.json.
3. L'emergere del filato perché presenta i seguenti vantaggi:
Utilizzare una struttura di directory piatta
Scaricamento parallelo
Utilizza la cache locale
Semplifica le informazioni di output della console e genera solo le informazioni chiave
Utilizza il file Yarn-Lock per registrare le dipendenze esatte
4. Influenzato dal filato, npm6 ha attinto ai concetti avanzati del filato e ha apportato le seguenti ottimizzazioni:
Appiattimento delle directory
Scaricamento parallelo
cache locale
Utilizza package-lock.json per registrare le dipendenze esatte
Aggiunto un gran numero di alias di comando
Npx integrato, puoi avviare gli strumenti CLI locali
Semplifica notevolmente l'output della console
5. CNPM
Il server del registro di npm è all'estero, il che potrebbe causare download lenti o non riusciti. In passato, npm non forniva la funzione di modifica del registro. Taobao ha creato il proprio registro, che è il mirror Taobao npm. Taobao fornisce anche uno strumento CLI cnpm. Gli altri usi sono sostanzialmente gli stessi di npm.
6. PNPM
Come npm e Yarn, la cache viene ancora utilizzata per salvare i pacchetti installati.Utilizza pnpm-lock.yaml per registrare versioni dettagliate delle dipendenze
Diversamente da Yarn e NPM, pnpm utilizza collegamenti simbolici e collegamenti reali per posizionare le dipendenze, evitando la copia di file, migliorando l'efficienza dell'installazione e riducendo notevolmente l'utilizzo dello spazio su disco.
Grazie all'uso di collegamenti simbolici e collegamenti reali, pnpm può evitare il problema di percorsi troppo lunghi nei sistemi Windows, quindi utilizza dipendenze ad albero. A causa delle dipendenze dell'albero, i progetti possono utilizzare solo dipendenze dirette, non dipendenze indirette.
7. Principio pnpm:
L'essenza di un file: il file è in realtà un puntatore che punta a un indirizzo di archiviazione esterno (disco rigido, unità flash USB). L'eliminazione di un file elimina effettivamente il puntatore, quindi è molto veloce.
Copia del file: copia il contenuto indicato dal puntatore del file, quindi genera un nuovo puntatore che punta al nuovo contenuto.
Collegamento reale: copia un puntatore del file A su un altro puntatore del file B. Il file B è un collegamento reale al file A.
Collegamento simbolico (collegamento software): crea un collegamento simbolico B per un file o una cartella A, quindi B punta ad A.
Scorciatoia: simile a un collegamento simbolico, è un metodo di collegamento supportato inizialmente da Windows. Non è solo un puntatore, ma contiene anche diverse informazioni come autorizzazioni, compatibilità e metodi di avvio. I collegamenti sono esclusivi dei sistemi Windows e non vengono utilizzati su tutte le piattaforme.
La differenza tra collegamenti simbolici e collegamenti fisici:
I collegamenti reali possono collegare solo file, mentre i collegamenti simbolici possono collegare file e directory.
Una volta completata la connessione, il collegamento reale è associato solo al contenuto del file e non ha nulla a che fare con il collegamento precedente. I collegamenti simbolici sono sempre associati al file precedentemente collegato e non sono direttamente associati al file di contenuto.