GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Filato vs NPM:un confronto completo

Introduzione

Yarn e NPM sono due dei gestori di pacchetti Node.js più popolari. Consentono di scaricare, installare e gestire i pacchetti durante lo sviluppo in JavaScript.

In questo tutorial confronteremo filato e NPM, ne considereremo le prestazioni, la facilità d'uso, la sicurezza e le funzionalità che forniscono.

Filato vs. NPM:Definizioni

Filato (ancora un altro negoziatore di risorse) e NPM (Node Package Manager) sono gestori di pacchetti utilizzati per la codifica JavaScript. Funzionano con Node.js , che serve ad aiutare gli utenti a sviluppare ed eseguire codice JavaScript al di fuori di un browser web.

Node.js utilizza un gran numero di pacchetti e librerie open source per rendere la codifica più semplice ed efficiente. I gestori di pacchetti come Yarn e NPM consentono agli utenti di installare, gestire, aggiornare e rimuovere facilmente pacchetti, librerie e dipendenze.

Cos'è il filato?

Facebook ha sviluppato Yarn nel 2016 in sostituzione di NPM. È stato progettato per offrire funzionalità più avanzate che all'epoca mancava a NPM (come il blocco della versione) e creare un prodotto più sicuro, stabile ed efficiente.

Tuttavia, da quando Yarn è stato rilasciato, NPM ha aggiunto diverse funzionalità cruciali. Allo stato attuale, Yarn è ora più un'alternativa a NPM piuttosto che un sostituto.

Cos'è NPM?

NPM è il gestore di pacchetti predefinito per Node.js con uno strumento CLI che aiuta a installare, gestire e rimuovere i pacchetti Node.js. Consente inoltre agli utenti di condividere pacchetti Node.js open source.

Filato vs. NPM:confronto

Di seguito è riportato uno schema di alcune somiglianze e differenze tra Yarn e NPM.

Installazione

Inizieremo confrontando il processo di installazione per Yarn e NPM:

Filato

Per iniziare a utilizzare Yarn, devi installarlo utilizzando il programma di installazione MSI dal sito Web ufficiale o un gestore di pacchetti come Chocolatey, Scoop CLI o NPM stesso. Scopri di più nella nostra guida all'installazione di Yarn su Windows e all'installazione di Yarn su Ubuntu 18.04.

NPM

NPM è incluso per impostazione predefinita con l'installazione di Node.js e non richiede passaggi aggiuntivi per l'installazione. Per ulteriori informazioni sull'installazione di Node.js e NPM, dai un'occhiata a una delle nostre guide:

  • Come installare Node.js e NPM su Ubuntu 18.04 e 20.04
  • Come installare Node.js e NPM su CentOS 7
  • Come installare Node.js e NPM su Windows
  • Come installare Node.js e NPM su Mac

Dipendenze

Filato

Yarn versione 1 e NPM gestiscono entrambe le dipendenze in modo molto simile. Entrambi memorizzano i metadati del progetto in package.json file, che si trova in node_modules cartella all'interno della directory del progetto.

A partire dalla versione 2, Yarn non utilizza più i node_modules cartella per tenere traccia delle dipendenze. Invece, Yarn 2.0 utilizza il Plug'n'Play funzione, che genera un singolo .pnp.cjs file. Questo file contiene una mappa della gerarchia delle dipendenze per un progetto.

Il filato utilizza il yarn comando per installare le dipendenze. Installa le dipendenze in parallelo, consentendoti di aggiungere più file contemporaneamente.

L'installazione delle dipendenze crea automaticamente un file di blocco che salva l'elenco esatto delle dipendenze utilizzate per il progetto. Con Yarn, questo file si chiama yarn.lock .

NPM

NPM installa le dipendenze utilizzando npm install comando. Le dipendenze vengono installate in sequenza, una dopo l'altra.

NPM crea anche un file di blocco della versione denominato package-lock.json . Yarn supporta anche package-lock.json file, consentendo agli utenti di migrare i dati della versione da NPM a Yarn.

Velocità e prestazioni

Come accennato in precedenza, mentre NPM installa i pacchetti di dipendenze in sequenza, Yarn installa in parallelo. Per questo motivo, Yarn è più veloce di NPM durante l'installazione di file più grandi.

Entrambi gli strumenti offrono anche la possibilità di salvare i file di dipendenza nella cache offline. Ciò consente agli utenti di installare le dipendenze anche se sono offline.

Inoltre, a partire dalla versione 2, Yarn utilizza Installazione zero caratteristica. Questa funzione prende la mappa delle dipendenze da .pnp.cjs file e lo utilizza per eseguire un'installazione delle dipendenze offline con ritardi praticamente pari a zero.

Sicurezza

Filato

Yarn esegue un controllo di sicurezza come processo in background durante il download dei pacchetti. Utilizza le informazioni sulla licenza del pacchetto per assicurarsi che non scarichi script dannosi o causi conflitti di dipendenza.

Entrambi gli strumenti utilizzano protocolli di crittografia per garantire un trasferimento dati sicuro. Yarn verifica i pacchetti con checksum, mentre NPM utilizza SHA-512 (Secure Hash Algorithm) archiviato in package-lock.json file.

NPM

Le minacce alla sicurezza erano un problema significativo nelle prime versioni di NPM. A partire dalla versione 6, NPM esegue un controllo di sicurezza ogni volta che si installa un pacchetto. Questo aiuta a prevenire le vulnerabilità e assicura che non ci siano dipendenze in conflitto.

Puoi anche eseguire un controllo manuale utilizzando il npm audit comando. Se NPM rileva eventuali vulnerabilità, utilizzando npm audit fix dovrebbe risolvere i problemi.

Facilità d'uso

Sia Yarn che NPM sono relativamente facili da usare, soprattutto considerando che condividono diversi comandi. L'output del comando è generalmente di facile lettura e comprensione, sebbene possa diventare meno distinguibile visivamente durante l'installazione di un numero elevato di pacchetti.

Entrambi i gestori di pacchetti offrono una modalità interattiva che aiuta gli utenti a impostare nuovi progetti. In Yarn, questa modalità è abilitata per impostazione predefinita, mentre NPM richiede l'aggiornamento di npm pacchetto per abilitare l'interattività.

Caratteristiche

Filato e NPM hanno diverse caratteristiche chiave in comune:

  • Generazione di file di blocco: Entrambi i gestori di pacchetti creano automaticamente un file di blocco della versione. Con Yarn, questo file si chiama yarn.lock , mentre NPM nomina il file package-lock.json .
  • Utilizzo degli spazi di lavoro: Sia Yarn che NPM supportano gli spazi di lavoro, consentendoti di utilizzare un unico repository per gestire le dipendenze per più progetti.
  • Script remoti: Sia NPM che Yarn ti consentono di eseguire script in remoto, utilizzando il npx comando in NPM e il yarn dlx comando in Filato.

Le caratteristiche sono esclusive di Yarn:

  • Plug'n'Play: Invece di usare i node_modules cartella, Yarn genera un singolo .pnp.cjs file che mappa le dipendenze del progetto. Ciò consente alberi delle dipendenze più ottimizzati e un avvio del progetto e un'installazione del pacchetto più rapidi.
  • Installazioni zero: Questa funzione si collega a Plug'n'Play , utilizzando .pnp.cjs per mappare i pacchetti archiviati nella cache offline. Ciò ti consente di accedere e installare i pacchetti archiviati quasi senza ritardi.
  • Controllo della licenza: Yarn dispone di un controllo delle licenze integrato durante il download e l'installazione dei pacchetti.

Comandi

La tabella seguente fornisce una panoramica di alcuni dei comandi più utilizzati per NPM e Yarn:

Comando NPM Filato
Inizia un progetto npm init yarn init
Esegui test per il pacchetto corrente npm test yarn test
Controlla i pacchetti obsoleti npm outdated yarn outdated
Pubblica un pacchetto npm publish yarn publish
Esegui uno script npm run yarn run
Gestisci la cache del pacchetto locale npm cache clean yarn cache clean
Accedi o esci npm login/logout yarn login/logout
Installa dipendenze npm install yarn
Installa pacchetti npm install [package name] yarn add [package name]
Disinstalla i pacchetti npm uninstall [package name] yarn remove [package name]
Gestione aggiornamenti npm update yarn upgrade
Aggiorna pacchetti npm update [package name] yarn upgrade [package name]
Installa i pacchetti a livello globale npm install --global [package name] yarn global add [package name]
Disinstalla i pacchetti a livello globale npm uninstall --global [package name] yarn global remove [package name]
Aggiornamento interattivo delle dipendenze npm run upgrade-interactive yarn upgrade-interactive
Esegui pacchetto in remoto yarn dlx
Controlla le licenze yarn licenses ls

Filato vs. NPM:come scegliere

È essenziale considerare i vantaggi e gli svantaggi di NPM e Yarn quando si decide quale utilizzare.

Filato

Vantaggi

  • Supporta l'installazione parallela e l'installazione Zero, che aumentano notevolmente le prestazioni.
  • Le versioni più recenti di Yarn offrono una forma più sicura di blocco delle versioni.
  • Community di utenti attivi.

Svantaggi

  • Yarn non funziona con le versioni di Node.js precedenti alla versione 5.
  • Yarn ha mostrato problemi durante il tentativo di installare moduli nativi.

NPM

Vantaggi

  • Facile da usare, soprattutto per gli sviluppatori abituati al flusso di lavoro delle versioni precedenti.
  • L'installazione del pacchetto locale è ottimizzata per risparmiare spazio sul disco rigido.
  • La semplice interfaccia utente aiuta a ridurre i tempi di sviluppo.

Svantaggi

  • Il registro NPM online può diventare inaffidabile in caso di problemi di prestazioni. Ciò significa anche che NPM richiede l'accesso alla rete per installare i pacchetti dal registro.
  • Nonostante una serie di miglioramenti nelle diverse versioni, sono ancora presenti vulnerabilità di sicurezza durante l'installazione dei pacchetti.
  • L'output dei comandi può essere difficile da leggere.

Verdetto

Considerando tutto quanto sopra, NPM è migliore per gli sviluppatori abituati e soddisfatti del flusso di lavoro corrente. Fornisce un'esperienza utente ragionevolmente efficiente e allo stesso tempo consente di risparmiare spazio sul disco rigido.

D'altra parte, Yarn offre funzionalità più avanzate, come Plug'n'Play e Zero installazioni. Fornisce inoltre prestazioni e sicurezza leggermente migliori, ma a scapito dello spazio sul disco rigido.


Ubuntu
  1. Come installare il filato su Ubuntu 18.04

  2. Come installare il filato su Ubuntu 20.04?

  3. Installa npm su Ubuntu 16.04

  4. Come installare Yarn NPM Package Manager su Oracle Linux 8

  5. Confronto di date in Bash

Come installare Yarn NPM Package Manager su Ubuntu 20.04

Come installare in modo sicuro i pacchetti utilizzando Npm o Yarn su Linux

Come installare il client Yarn NPM su Ubuntu e gestire le dipendenze tramite esso

Come installare Filato su Ubuntu 20.04

Come installare il filato su Ubuntu 22.04

AppArmor vs. SELinux:confronto completo