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:
yarn
Dit 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 |