Migreren van npm zou voor de meeste gebruikers een vrij eenvoudig proces moeten zijn. Yarn kan hetzelfde package.json-formaat gebruiken als npm, en kan elk pakket uit het npm-register installeren.
Als u Yarn wilt uitproberen op uw bestaande npm-project, probeer dan het volgende uit te voeren:
yarnDit zal uw node_modules-map indelen met behulp van Yarn’s resolutiealgoritme dat compatibel is met het module-resolutiealgoritme van Thenode.js module resolutie algoritme.
Als u een fout krijgt, controleer dan of er een bestaand probleem is of meld het aan deYarn issue tracker.
Wanneer u yarn of yarn add <package> uitvoert, genereert Yarn een yarn.lock bestand in de root directory van uw pakket. Je hoeft dit bestand niet te lezen of te begrijpen – controleer het gewoon in bronbeheer. Wanneer andere mensen Yarn gaan gebruiken in plaats van npm, zal het yarn.lock bestand ervoor zorgen dat ze precies dezelfde dependencies krijgen als jij hebt.
In de meeste gevallen zal het draaien van yarn of yarn add voor de eerste keer gewoon werken. In sommige gevallen is de informatie in een package.json-bestand niet expliciet genoeg om afhankelijkheden te elimineren, en de deterministische manier waarop Yarn afhankelijkheden kiest, zal op afhankelijkheidsconflicten stuiten. Dit is vooral waarschijnlijk om te gebeuren in grotere projecten waar soms npm install niet werkt en ontwikkelaars zijn vaak het verwijderen van node_modules en opnieuw te bouwen vanaf nul. Als dit gebeurt, probeer dan npm te gebruiken om de versies van de afhankelijkheden explicieter te maken, voordat u converteert naar Yarn.
Vanaf Yarn 1.7.0, kunt u uw package-lock.json state, gegenereerd door npm naar Yarn importeren, door yarn import te gebruiken.
Andere ontwikkelaars op het project kunnen npm blijven gebruiken, dus u hoeft niet iedereen op uw project tegelijkertijd te laten converteren. De ontwikkelaars die yarn gebruiken zullen allemaal precies dezelfde configuratie krijgen, en de ontwikkelaars die npm gebruiken kunnen iets andere configuraties krijgen, wat het bedoelde gedrag is van npm.
Wanneer u later besluit dat Yarn niets voor u is, kunt u gewoon teruggaan naar het gebruik van npm zonder bijzondere veranderingen aan te brengen. U kunt uw oude yarn.lock bestand verwijderen als niemand in het project Yarn meer gebruikt, maar het is niet nodig.
Als u nu een npm-shrinkwrap.json bestand gebruikt, wees u er dan van bewust dat u met een andere set afhankelijkheden kunt komen te zitten. Yarn ondersteunt geen npmshrinkwrap bestanden omdat ze niet genoeg informatie bevatten om Yarn’s meer deterministische algoritme aan te drijven. Als je een shrinkwrap bestand gebruikt, kan het eenvoudiger zijn om iedereen die aan het project werkt om te zetten naar Yarn op hetzelfde moment. Verwijder gewoon uw bestaande npm-shrinkwrap.json bestand en check in het nieuw aangemaakte yarn.lock bestand.
CLI commando’s vergelijking
| npm (v5) | Yarn | 
|---|---|
| npm install | yarn add | 
| (N.V.T.) | yarn add --flat | 
| (N.V.T.) | yarn add --har | 
| npm install --no-package-lock | yarn add --no-lockfile | 
| (N.V.T.) | yarn add --pure-lockfile | 
| npm install --save | yarn add  | 
| npm install --save-dev | yarn add --dev | 
| (N.V.T.) | yarn add --peer | 
| npm install --save-optional | yarn add --optional | 
| npm install --save-exact | yarn add --exact | 
| (N.V.T.) | 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 |