Migrare da npm dovrebbe essere un processo abbastanza facile per molti utenti. Yarn può assumere lo stesso formato package.json
di npm e può installare qualsiasi pacchetto dal registro di npm.
Se vuoi provare Yarn sul tuo progetto npm esistente, prova ad eseguire:
yarn
Questo disporrà la tua cartella node_modules
utilizzando l’algoritmo di risoluzione di Yarn che è compatibile con l’algoritmo di risoluzione di thenode.js.
Se ottieni un errore, controlla un problema esistente o segnalalo al tracker dei problemi di Yarn.
Quando esegui yarn
o yarn add <package>
, Yarn genera un file yarn.lock
nella directory principale del tuo pacchetto. Non hai bisogno di leggere o capire questo file – semplicemente controllalo nel controllo dei sorgenti. Quando altre persone inizieranno ad usare Yarn al posto di npm
, il file yarn.lock
si assicurerà che abbiano esattamente le stesse dipendenze che hai tu.
Nella maggior parte dei casi, eseguire yarn
o yarn add
per la prima volta funzionerà. In alcuni casi, le informazioni in un file package.json
non sono abbastanza esplicite per eliminare le dipendenze, e il modo deterministico in cui Yarn sceglie le dipendenze incorrerà in conflitti di dipendenza. Questo è particolarmente probabile che accada in progetti più grandi dove a volte npm install
non funziona e gli sviluppatori stanno spesso rimuovendo node_modules
e ricostruendo da zero. Se questo accade, prova ad usare npm
per rendere più esplicite le versioni delle dipendenze, prima di convertire a Yarn.
A partire da Yarn 1.7.0, puoi importare il tuo stato package-lock.json, generato da npm
a Yarn, usando yarn import
.
Altri sviluppatori del progetto possono continuare ad usare npm
, quindi non hai bisogno di far convertire tutti quelli del tuo progetto nello stesso momento. Gli sviluppatori che usano yarn
avranno tutti esattamente la stessa configurazione, e gli sviluppatori che usano npm
potrebbero avere configurazioni leggermente diverse, che è il comportamento previsto di npm
.
In seguito, se decidi che Yarn non fa per te, puoi semplicemente tornare a usare npm
senza fare particolari cambiamenti. Puoi cancellare il tuo vecchio file yarn.lock
se nessuno del progetto usa più Yarn, ma non è necessario.
Se ora stai usando un file npm-shrinkwrap.json
, sii consapevole che potresti ritrovarti con un diverso insieme di dipendenze. Yarn non supporta i file npmshrinkwrap in quanto non hanno abbastanza informazioni per alimentare l’algoritmo deterministico di Yarn. Se state usando un file shrinkwrap può essere più facile convertire tutti quelli che lavorano al progetto ad usare Yarn allo stesso tempo. Semplicemente rimuovi il tuo file npm-shrinkwrap.json
esistente e controlla il file yarn.lock
appena creato.
Confronto comandi CLI
npm (v5) | Yarn |
---|---|
npm install |
yarn add |
(N/A) | yarn add --flat |
(N/A) | yarn add --har |
npm install --no-package-lock |
yarn add --no-lockfile |
(N/A) | yarn add --pure-lockfile |
npm install --save |
yarn add |
npm install --save-dev |
yarn add --dev |
(N/A) | yarn add --peer |
npm install --save-optional |
yarn add --optional |
npm install --save-exact |
yarn add --exact |
(N/A) | yarn add --tilde |
npm install --global |
yarn global add |
npm update --global |
yarn global upgrade |
npm rebuild |
yarn add --force |
npm uninstall |
yarn remove |
npm cache clean |
yarn cache clean |
rm -rf node_modules && npm install |
yarn upgrade |
npm version major |
yarn version --major |
npm version minor |
yarn version --minor |
npm version patch |
yarn version --patch |