Migrering fra npm burde være en ret nem proces for de fleste brugere. Yarn kanbruge det samme package.json
-format som npm og kan installere enhver pakke fra npm-registret.
Hvis du vil prøve Yarn på dit eksisterende npm-projekt, skal du bare prøve at køre:
yarn
Dette vil lægge din node_modules
-mappe ud ved hjælp af Yarns opløsningsalgoritme, der er kompatibel med thenode.js modulopløsningsalgoritme.
Hvis du får en fejl, skal du kontrollere, om der findes et eksisterende problem, eller rapportere det til Yarn-fejlsøgningssystemet.
Når du kører enten yarn
eller yarn add <package>
, vil Yarn generere en yarn.lock
-fil i rodmappen for din pakke. Du behøver ikke at læse eller forstå denne fil – du skal blot tjekke den ind i kildekontrollen. Når andre begynder at bruge Yarn i stedet for npm
, vil yarn.lock
-filen sikre, at de får præcis de samme afhængigheder som du har.
I de fleste tilfælde vil det bare fungere at køre yarn
eller yarn add
for første gang. I nogle tilfælde er oplysningerne i en package.json
-fil ikke eksplicitte nok til at fjerne afhængigheder, og den deterministiske måde, som Yarn vælger afhængigheder på, vil løbe ind i afhængighedskonflikter. Dette vil især ske i større projekter, hvor npm install
nogle gange ikke fungerer, og hvor udviklerne ofte fjerner node_modules
og genopbygger fra bunden. Hvis det sker, kan du prøve at bruge npm
til at gøre versionerne af afhængigheder mere eksplicitte, før du konverterer til Yarn.
Som i Yarn 1.7.0 kan du importere din package-lock.json-status, genereret af npm
, til Yarn ved at bruge yarn import
.
Andre udviklere på projektet kan fortsætte med at bruge npm
, så du behøver ikke at få alle på dit projekt til at konvertere på samme tid. De udviklere, der bruger yarn
, vil alle få nøjagtig den samme konfiguration som hinanden, og de udviklere, der bruger npm
, kan få lidt forskellige konfigurationer, hvilket er den tilsigtede adfærd for npm
.
Spå et senere tidspunkt, hvis du beslutter, at Yarn ikke er noget for dig, kan du bare gå tilbage til at bruge npm
uden at foretage nogen særlige ændringer. Du kan slette din gamle yarn.lock
-fil, hvis ingen på projektet bruger Yarn længere, men det er ikke nødvendigt.
Hvis du bruger en npm-shrinkwrap.json
-fil lige nu, skal du være opmærksom på, at du kan ende med et andet sæt af afhængigheder. Yarn understøtter ikke npmshrinkwrap-filer, da de ikke har nok information i dem til at drive Yarns smore deterministiske algoritme. Hvis du bruger en shrinkwrap-fil, kan det være nemmere at konvertere alle, der arbejder på projektet, til at bruge Yarn på samme tid. Du skal blot flytte din eksisterende npm-shrinkwrap.json
-fil og tjekke den nyoprettede yarn.lock
-fil ind.
CLI-kommandoer sammenligning
npm (v5) | Yarn | |
---|---|---|
npm install |
yarn add |
|
(N/A) | yarn add --flat |
|
(N/A) | yarn add --har |
|
npm install --no-package-lock |
||
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 |
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 |