A legtöbb felhasználó számára az npm-ről való migrálás meglehetősen egyszerű folyamat. A Yarn ugyanazt a package.json
formátumot használja, mint az npm, és bármilyen csomagot képes telepíteni az npm regiszteréből.
Ha ki akarod próbálni a Yarnt a meglévő npm projekteden, csak próbáld ki a:
yarn
Ez a Yarn felbontási algoritmusát használva fogja elrendezni a node_modules
mappádat, amely kompatibilis a thenode-dal.js modulfelbontási algoritmussal.
Ha hibát kap, kérjük, keressen egy létező problémát, vagy jelentse aYarn issue trackerben.
Ha a yarn
vagy a yarn add <package>
futtatásakor a Yarn létrehoz egy yarn.lock
fájlt a csomagja gyökérkönyvtárában. Ezt a fájlt nem kell elolvasnod vagy megértened – csak ellenőrizd a forrásellenőrzésben. Amikor mások elkezdik használni a Yarnt a npm
helyett, a yarn.lock
fájl biztosítja, hogy pontosan ugyanazokat a függőségeket kapják meg, mint te.
A legtöbb esetben a yarn
vagy a yarn add
első futtatása egyszerűen működik. Bizonyos esetekben a package.json
fájlban lévő információ nem elég explicit a függőségek kiküszöböléséhez, és a determinisztikus módon, ahogyan a Yarn kiválasztja a függőségeket, függőségi konfliktusokba fog ütközni. Ez különösen nagy valószínűséggel fordulhat elő nagyobb projektekben, ahol néha a npm install
nem működik, és a fejlesztők gyakran eltávolítják a node_modules
-t és újraépítik a nulláról. Ha ez történik, próbáld meg a npm
használatával egyértelműbbé tenni a függőségek verzióit, mielőtt a Yarnra konvertálnál.
A Yarn 1.7.0-tól kezdve a npm
által generált package-lock.json állapotot a yarn import
használatával importálhatod a Yarnba.
A projekt többi fejlesztője továbbra is használhatja a npm
-t, így nem kell a projektedben mindenkit egyszerre konvertálni. A yarn
-t használó fejlesztők mind pontosan ugyanazt a konfigurációt fogják kapni, mint a többiek, a npm
-t használó fejlesztők pedig kissé eltérő konfigurációkat kaphatnak, ami a npm
.
A későbbiekben, ha úgy döntesz, hogy a Yarn nem neked való, egyszerűen visszatérhetsz a npm
használatához anélkül, hogy különösebb változtatásokat végeznél. Törölheti a régi yarn.lock
fájlt, ha a projektben már senki sem használja a Yarnt, de ez nem szükséges.
Ha most egy npm-shrinkwrap.json
fájlt használ, vegye figyelembe, hogy a függőségek eltérő készletét kaphatja. A Yarn nem támogatja az npmshrinkwrap fájlokat, mivel nincs bennük elég információ a Yarn smore determinisztikus algoritmusának működtetéséhez. Ha shrinkwrap fájlt használ, könnyebb lehet átállítani mindenkit, aki a projekten dolgozik, hogy egyszerre használja a Yarnt. Egyszerűen távolítsa el a meglévő npm-shrinkwrap.json
fájlt, és ellenőrizze az újonnan létrehozott yarn.lock
fájlt.
CLI parancsok összehasonlítása
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 |