Migrera från npm bör vara en ganska enkel process för de flesta användare. Yarn kan använda samma package.json
-format som npm och kan installera alla paket från npm-registret.
Om du vill prova Yarn på ditt befintliga npm-projekt är det bara att köra:
yarn
Detta kommer att lägga upp din node_modules
-mapp med hjälp av Yarns upplösningsalgoritm som är kompatibel med thenode.js-modulens upplösningsalgoritm.
Om du får ett fel, kontrollera om det finns ett befintligt problem eller rapportera det till Yarns problemspårare.
När du kör antingen yarn
eller yarn add <package>
kommer Yarn att generera en yarn.lock
-fil i rotkatalogen för ditt paket. Du behöver inte läsa eller förstå den här filen – det är bara att checka in den i källkontrollen. När andra personer börjar använda Yarn istället för npm
kommer yarn.lock
-filen att se till att de får exakt samma beroenden som du har.
I de flesta fall fungerar det bara att köra yarn
eller yarn add
för första gången. I vissa fall är informationen i en package.json
-fil inte tillräckligt explicit för att eliminera beroenden, och det deterministiska sättet som Yarn väljer beroenden kommer att stöta på beroendekonflikter. Detta är särskilt troligt att hända i större projekt där npm install
ibland inte fungerar och utvecklarna ofta tar bort node_modules
och bygger om från början. Om detta händer kan du prova att använda npm
för att göra versionerna av beroenden mer explicita, innan du konverterar till Yarn.
Sedan Yarn 1.7.0 kan du importera ditt package-lock.json-tillstånd, genererat av npm
, till Yarn genom att använda yarn import
.
Andra utvecklare i projektet kan fortsätta att använda npm
, så du behöver inte få alla i ditt projekt att konvertera samtidigt. De utvecklare som använder yarn
kommer alla att få exakt samma konfiguration som varandra, och de utvecklare som använder npm
kan få något olika konfigurationer, vilket är det avsedda beteendet för npm
.
Senare, om du bestämmer dig för att Yarn inte är något för dig, kan du bara återgå till att använda npm
utan att göra några särskilda ändringar. Du kan radera din gamla yarn.lock
-fil om ingen i projektet använder Yarn längre, men det är inte nödvändigt.
Om du använder en npm-shrinkwrap.json
-fil just nu ska du vara medveten om att du kan få en annan uppsättning beroenden. Yarn stöder inte npmshrinkwrap-filer eftersom de inte innehåller tillräckligt med information för att driva Yarns mer deterministiska algoritm. Om du använder en shrinkwrap-fil kan det vara lättare att konvertera alla som arbetar med projektet till att använda Yarn samtidigt. Det är bara att flytta tillbaka din befintliga npm-shrinkwrap.json
-fil och checka in den nyskapade yarn.lock
-filen.
CLI-kommandon jämförelse
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 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 |