- Lõng kasutab kahetasemelist mudelit: ühte globaalset käsurealiidest ja projektiga seotud versiooni järjepideva käitumise tagamiseks.
- Deterministlikud installid yarn.locki ja agressiivse vahemällu salvestamisega pakuvad kiiret ja reprodutseeritavat sõltuvuste haldamist.
- Modern Yarn Berry lisab PnP, tööruumid ja .yarnrc.yml faili paindliku linkimise, vahemällu salvestamise ja redaktori/konfiguratsiooniintegratsiooni jaoks.
- Õige tee (PATH) seadistamine, lukustusfailide käitlemine ja vahemälu haldamine on levinud installiprobleemide vältimiseks olulised.

Kui proovite oma JavaScripti projektide jaoks Yarni installida ja tunnete end nii paljude valikute vahel pisut eksinud, siis pole te üksi. Lõng on viimastel aastatel palju arenenud, see eksisteerib koos npm-iga ning sellest on erinevad versioonid ja installimisvood, mis sõltuvad operatsioonisüsteemist ja isegi kasutatavast projektistiilist (monorepo, PnP, klassikaline node_modules jne).
Hea uudis on see, et kui olete aru saanud, kuidas Yarn on installitud ja kuidas selle kahetasemeline mudel (globaalne CLI + projektispetsiifiline Yarn) töötab, hakkab kõik loogiline olema. Selles juhendis käsitleme üksikasjalikult, kuidas paigaldada Yarni kõige levinumatesse süsteemidesse, kuidas seda päris JavaScripti projekti ühendada, mis eristab seda npm-ist ja kuidas lahendada tüüpilisi probleeme, mis tavaliselt esmakordsel kasutuselevõtul ilmnevad.
Mis on lõng ja miks see JavaScripti projektide jaoks endiselt oluline on?
Yarn on Node.js-i paketihaldur, mis on loodud kolme suurt eesmärki silmas pidades: kiirus, turvalisus ja deterministlikud installid. See sündis npm-i alternatiivina ajal, mil npm-il oli jõudluse ja töökindluse probleeme, ning kuigi npm on sellest ajast alates palju paranenud, on Yarn endiselt äärmiselt populaarne, eriti Reacti ja tänapäevaste esiotsa stackide puhul.
Üks Yarni peamisi tugevusi on selle deterministlik paigaldusprotsess, mis põhineb yarn.lock faili. See fail parandab kõigi otseste ja transitiivsete sõltuvuste täpsed versioonid, nii et erinevatele masinatele või CI-serveritele installimisel saadakse alati sama sõltuvuspuu, kõrvaldades klassikalise probleemi „see töötab ainult minu sülearvutil”.
Teine eripära on selle agressiivne vahemällu salvestamise käitumine, mis võimaldab Yarnil taaskasutada kõiki juba alla laaditud pakette. Tänu sellele on korduvad installid oluliselt kiiremad ja Yarn saab töötada isegi võrguühenduseta režiimis, kui kõik vajalikud paketid on eelnevalt vahemällu salvestatud.
Modern Yarn (versioonides 2.x, 3.x ja 4.x sageli nimetatud „Berryks”) pakub täiendavaid täiustatud funktsioone, nagu näiteks Plug'n'Play (PnP) ja tööruumid. PnP suudab traditsioonilise täielikult eemaldada node_modules kausta, asendades selle manifestifailidega, mis ütlevad Node.js-ile täpselt, kus iga pakett asub, säästes palju kettaruumi ja kiirendades mõningaid toiminguid. Tööruumid seevastu sobivad ideaalselt monorepositooriumide jaoks, linkides mitu paketti ühte repositooriumisse jagatud lukustusfaili ja tsentraalse sõltuvuste haldamise abil.
Turvalisuse seisukohast kontrollib Yarn iga paketi kontrollsummasid enne selle käivitamist. See terviklikkuse valideerimine lisab täiendava kaitsekihi rikutud või võltsitud artefaktide eest, mis on eriti kasulik ettevõtetes või tundlikes keskkondades.
Lõnga klassikaline ja lõnga Berry mõistmine (kaasaegne lõng)

Enne paigaldusest rääkimist on oluline mõista, et lõngatüüpe on kaks: klassikaline (1.x) ja Berry (2.x/3.x/4.x). Yarn Classic asub oma ajaloolises repositooriumis ja saab ainult turvaparandusi, samas kui kogu aktiivne arendus keskendub uuemale Berry tootesarjale, mis on majutatud yarnpkg/berry puhata.
Klassikaline lõng (umbes 1.22) on see, mida enamik inimesi globaalse lõnga paigaldamisel ikka veel valib. yarn CLI koos npm-iga. See globaalne CLI toimib tänapäeval enamasti käivitajana: Berryga konfigureeritud projekti sees delegeerib globaalne käsk lihtsalt täitmise kohalikule projektispetsiifilisele Yarni versioonile, nii et saate projekti tööriistaketti uuendada ilma globaalseid tööriistu puudutamata.
Yarn Berry toob kaasa põhjalikke arhitektuurilisi muudatusi, millest silmapaistvaimad on Plug'n'Play ja võimas pluginate süsteem. Vaikimisi eelistab Berry PnP-d node_modules, toetab nullinstalli töövooge (repositooriumile määratud sõltuvused) ja võimaldab detailset konfigureerimist .yarnrc.yml, sealhulgas kuidas moodulid on linkitud, kuidas vahemälusid hallatakse või kuidas registreid ja puhverservereid defineeritakse.
Yarni hooldajad ise soovitavad tungivalt igal võimalusel 1.x versioonilt Berry uusimale versioonile üle minna. Modernseid versioone on kauem aktiivselt hooldatud, need parandavad terveid Classicus esinevaid probleeme ja pakuvad konfigureerimise paindlikkust. nodeLinker seadistust, et saaksite ikka klassikalist node_modules paigutus või pnpm-stiilis sümbollingid, kui PnP ei sobi.
Kui teie ökosüsteem või tööriistad pole veel PnP-ks valmis, pole te ummikus. Lihtsalt seades nodeLinker: node-modules in .yarnrc.ymlBerry käitub traditsioonilistele npm-installatsioonidele lähemal, säilitades samal ajal oma deterministliku lukustusfaili, vahemällu salvestamise käitumise ja täiustatud CLI-kogemuse.
Süsteeminõuded ja globaalne lõnga paigaldamise strateegia
Olenemata teie operatsioonisüsteemist on Yarni tegelikuks nõudeks Node.js installimine. Lõng on sõlmepõhine käsuliides ja selle käitamine sõltub sõlmest, seega peaksite kõigepealt kiirelt kinnitama, et sõlme on saadaval. node -v oma terminalis. Kui näete vea „käsku ei leitud” asemel versiooninumbrit, on kõik korras.
Kui Node.js puudub või on aegunud, installige või uuendage see oma platvormi jaoks soovitatud meetodi abil. Linuxis võid kasutada jaotuspakette või NodeSource'i repositooriume, macOS-is võid eelistada Homebrew'd, MacPortsi või nvm-i ning Windowsis ametlikku installerit või paketihaldurit nagu Chocolatey või Scoop. Paljud Yarni töövood eeldavad vähemalt Node 14.18 ja Berry puhul on Node 16 või 18 LTS tavaliselt ideaalne valik.
Lõnga autorid soovitavad kahetasandilist paigaldusmudelit. Esmalt installige globaalne yarn CLI üks kord (kõige sagedamini npm kaudu) ja seejärel iga projekti sees selle globaalse käsu abil konfigureerida projektipõhine Yarni versioon, mis asub otse repositooriumis. See tagab, et kõik kaastöölised ja CI-tööd käivitavad täpselt sama projekti poolt määratletud Yarni versiooni.
Globaalse lõnga CLI installimine npm-i kaudu on lihtne. Kuna npm tarnitakse vaikimisi Node.js-iga, saate käivitada järgmise:
sudo npm install -g yarn
Kui installimine on lõppenud, kontrollige, kas globaalne CLI on kättesaadav. Run:
yarn --version
Kui näed midagi sellist 1.22.x, see tähendab, et globaalne klassikaline käivitaja töötab korralikult. Edaspidi, kui astud Berryt kasutavasse projekti, annab see globaalne käsk läbipaistvalt juhtimise üle lokaalselt konfigureeritud Yarn'i väljalaskele, mis on salvestatud repositooriumisse.
Lõnga installimine konkreetsesse JavaScripti projekti
Kui globaalne CLI on valmis, on järgmine samm iga projekti külge konkreetse lõnga versiooni kinnitamine. Just see tagab järjepidevuse teie meeskonnakaaslaste masinate ja teie CI/CD torujuhtmete vahel: kõik käitavad sama Yarn'i binaarfaili ja jagavad seetõttu sama käitumist.
Alusta oma projekti kataloogi navigeerimisest (või loo uus, kui käivitad värske rakenduse). Näiteks:
mkdir my-project
cd my-project
Selle kausta sees kasutage spetsiaalset yarn set version käsk Berry moodsa väljalaske valimiseks. Tüüpiline valik on aktiivselt arenenud "marja" joone jälgimine:
yarn set version berry
Kulisside taga lahendab Yarn „berry“ uusima Berry binaarfaili, laadib selle alla ja salvestab selle .yarn/releases kataloog teie projektis. Samal ajal loob või uuendab see .yarnrc.yml projekti juurkataloogi faili, et öelda globaalsele käivitajale, et see delegeeriks sellele kohalikule binaarfailile.
Kui sa nüüd jooksed yarn --version jälle projekti seestpoolt muutub väljund projektiga seotud versiooniks. Võid näha midagi sellist 4.5.0 või mõni muu 3.x/4.x väljalase, mis näitab, et te ei kasuta enam globaalset klassikalist CLI-d, vaid kohalikku Berry CLI-d, mis on majutatud teie repositooriumis.
Sellest hetkest alates kasutab iga selles kataloogis (või selle alamkataloogides) käivitatud Yarn-käsk projektipõhist Yarn-versiooni. See võimaldab meeskonnal järk-järgult erinevaid projekte omas tempos uuematele Yarni versioonidele üle viia, säilitades samal ajal arendajate masinatesse installitud ühe globaalse käivitaja.
Põhilõnga käsud igapäevaseks arenguks
Kui Yarn on installitud ja teie projektiga ühendatud, vajate enamiku igapäevaste toimingute katmiseks vaid väikest käskude alamhulka. CLI on ulatuslik, kuid käputäis alamkäsklusi viib teid juba sõltuvuste ja skriptide haldamise osas kaugele.
Kui tunned, et ei suuda midagi ette võtta või soovid rohkem võimalusi uurida, aktsepteerib iga käsk abilipu. Jooks:
yarn --help
prindib üldise abi, lisades --help pärast konkreetset alamkäsku annab sulle kontekstuaalseid kasutusnõuandeid. Näiteks yarn install --help selgitab kõiki sõltuvuste installiprotsessi jaoks saadaolevaid lippe.
Uue projekti käivitamiseks võite paluda Yarnil genereerida põhilised konfiguratsioonifailid. Tühja kausta sees käivitage lihtsalt:
yarn init
See käsk juhatab teid läbi mõne käsuviiba ja kirjutab package.json pluss yarn.lock faili. Esimene deklareerib teie projekti metaandmed, skriptid ja sõltuvused, teine aga toimib installimise ajal lahendatud Yarni täpsete versioonide kanoonilise kirjena.
Olemasoleva repositooriumiga liitumisel, mis juba kasutab Yarni, on tüüpiline alguspunkt kõigi sõltuvuste installimine. Projekti juurest käivitate lihtsalt:
yarn install
Lõng loeb siis package.json ja yarn.lock, laadib alla kõik puuduoleva ja seadistab sõltuvuspuu. Tänu vahemällu salvestamisele on järgnevad installid, isegi CI-s, palju kiiremad kui esialgne käivitamine.
Uute sõltuvuste lisamine on sama lihtne ka add alamkäsk. Näiteks Expressi installimiseks kasutaksite järgmist:
yarn add express
See üks käsk laadib paketi alla, uuendab package.json ja värskendab yarn.lock. JSON-faile pole vaja käsitsi redigeerida; Yarn hoiab deklareeritud vahemikud ja lukustatud versioonid teie eest sünkroonis.
Kiire mõistlikkuse kontroll: väike kiirserver lõngaga
Kui soovid olla täiesti kindel, et Yarn töötab ettenähtud viisil, saad Expressi abil kirjutada väikese suitsutesti. Eeldades, et oled projekti sees ja oled juba käivitanud yarn add express, loo fail nimega index.js järgmise minimaalse serveriga:
const express = require("express");
const app = express();
app.get("/", (req, res) => res.send("Yarn is working!"));
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
Node'i otse kutsumise asemel saab selle skripti käivitada Yarni kaudu, mis võib olla mugav PnP-keskkondades. Kasutage:
yarn node index.js
Ava teine terminal ja kontrolli, kas server vastab õigesti. Lihtne:
curl http://localhost:3000
peaks tagastama teate „Lõng töötab!“. Kui see juhtub, siis teate, et Yarn lahendas sõltuvuse, ühendas mooduli eraldusvõime ja käivitas skripti ilma probleemideta.
Sõltuvuste, skriptide ja lõnga vahemälu haldamine
Lisaks installimisele ja põhilistele täiendustele pakub Yarn mitmeid utiliite, mis aitavad teie sõltuvusgraafikut puhtalt hallata ja arendada. Need käsud väldivad käsitsi redigeerimist ja hoiavad package.json ja yarn.lock kogu aeg järjepidev.
Mittevajaliku sõltuvuse eemaldamiseks kasutage käsku remove alamkäsk. Näiteks:
yarn remove package-name
Yarn desinstallib paketi ja eemaldab selle package.jsonja värskendage vastavalt lukustusfaili. See hoiab ära aegunud või kasutamata moodulite püsimise teie sõltuvuspuus.
Sõltuvusi saab uuendada hulgi või konkreetse paketi jaoks. Ilma vaidlusteta,
yarn upgrade
lahendab ühilduvad uuemad versioonid vastavalt teie deklareeritud vahemikele, samal ajal kui:
yarn upgrade package-name
sihib ühte sõltuvust. Mõlemal juhul kirjutab Yarn ümber yarn.lock et kajastada uuendatud sõltuvusgraafikut.
Kui teie projekt määratleb skriptid package.json, Lõng run Alamkäsk on viis nende käivitamiseks. Selline skript:
"scripts": {
"start": "node index.js"
}
saab käivitada järgmiselt:
yarn run start
ja paljudel juhtudel lühem yarn start Ka alias töötab. See pakub Node'i või muude tööriistade peale puhta abstraktsioonikihi, olenemata teie aluseks olevast moodulite linkimisstrateegiast.
Yarn hoiab kõigi eelnevalt alla laaditud pakettide kohalikku või globaalset vahemälu, et kiirendada installimist ja pakkuda võrguühenduseta käitumist. Mõnikord, eriti pärast katseid või mitme versiooni vahetamist, võib see vahemälu muutuda müraseks või rikutud. Kui kahtlustate vahemälu probleeme, saate selle lähtestada järgmiselt:
yarn cache clean
Kui olete uudishimulik, kus Yarn neid vahemällu salvestatud esemeid hoiab, yarn cache dir prindib asukoha. See on eriti mugav, kui peate Windowsi viirusetõrje vahemälu kausta valgesse nimekirja lisama, et vältida aeglast installimist, mis on põhjustatud iga allalaaditud faili agressiivsest skannimisest.
Lõnga seadistamine .yarnrc.yml abil
Modern Yarn koondab projekti konfiguratsiooni .yarnrc.yml faili. See YAML-dokument kontrollib sõltuvuste linkimist, vahemälude asukohta, PnP rangust, registri URL-e, telemeetriat ja muud.
Tüüpiline konfiguratsioon võiks välja näha selline:
nodeLinker: pnp
pnpMode: strict
compressionLevel: mixed
enableGlobalCache: true
enableTelemetry: false
. nodeLinker säte on eriti oluline, kuna see määrab, kuidas mooduleid lahendatakse. Kehtivate valikute hulka kuuluvad pnp (Plug'n'Play ilma node_modules kaust), node-modules (klassikaline paigutus) ja mõnikord pnpm-stiilis linker. Kui teil tekib ühilduvusprobleeme tööriistadega, mis kodeerivad kõvakoodi. node_modules eeldused, üleminek node-modules sageli lahendab need.
compressionLevel ütleb Yarnile, kui agressiivselt peaks vahemällu salvestatud pakette tihendama. Väärtus 0 Maksimaalse kiiruse saavutamiseks lülitab tihendamise täielikult välja, 1 sunnib minimaalse ketta kasutamise tagamiseks täielikku tihendust ja mixed tasakaalustab mõlemat maailma, mis on enamiku meeskondade jaoks mõistlik vaikeväärtus.
võimaldamine enableGlobalCache põhjustab Yarni jagatud vahemälu kataloogi taaskasutamise mitme projekti vahel. Nii väldib Yarn, et kui mitu repositooriumi sõltuvad samast teegist, ei pea te neid mitu korda alla laadima, säästes nii võrgu ribalaiust kui ka kettaruumi.
Lõpuks enableTelemetry kontrollib, kas Yarn saadab hooldajatele anonüümset kasutusteavet. Paljud ettevõtted eelistavad selle privaatsuse ja vastavuse huvides välja lülitada, teised aga jätavad selle sisse lülitatuks, et projekti tegevuskava suunata; igal juhul on see lihtsalt lipp selles konfiguratsioonifailis.
Giti integratsioon: mida commit'ida ja mida ignoreerida
Kuna Yarn hoiustab osa oma masinatest a-s .yarn kataloogi puhul on oluline olla teadlik sellest, mis versioonikontrolli läheb. Mõnda neist failidest tuleks kindlasti jälgida, teised aga on vahemällu salvestatud või ehitusartefaktid, mis ainult paisutaksid repositooriumi.
Minimaalne .gitignore paljudes Berry projektides kasutatav strateegia näeb välja selline:
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
See muster ignoreerib kogu .yarn kausta, aga seejärel lisab valgesse nimekirja alamkataloogid, mis tuleb commit'ida. . releases Näiteks kataloog sisaldab projektipõhist Yarn'i binaarfaili; ilma selleta ei pruugi teised arendajad repo kloonimisel saada täpselt sama CLI versiooni.
Muud valgesse nimekirja kantud teed, näiteks .yarn/plugins or .yarn/sdks hoidke kohandatud pluginaid ja redaktori integratsioone. Nende versioonikontrolli all hoidmine tagab, et kõik meeskonnaliikmed jagavad sama pluginate komplekti ja keeletööriistade tuge.
. .pnp.* Kirjed on Plug'n'Play manifestifailid, mis kirjeldavad sõltuvuspuud, kui kasutate PnP-režiimi. Nende committing on oluline reprodutseeritavate ja mõnikord isegi nullinstalli töövoogude jaoks, kus CI või uued kloonid saavad projekti kohe käivitada ilma manifeste uuesti loomata.
Lisaks sellele pidage meeles, et yarn.lock on teie hoidlas esimese klassi kodanik. See tuleb alati sõltuvuste muutustega kaasas kanda ja ajakohastada, vastasel juhul kaovad kõik lõnga determinismi eelised.
Lõng vs npm: kui lõng tõeliselt särab
Yarn ja npm lahendavad sama põhiprobleemi: Node.js sõltuvuste haldamise, kuid Yarn eristab end mitmes praktilises stsenaariumis. Kõige nähtavam erinevus seisneb sageli jõudluses: paralleelsete installide ja nutikama vahemällu salvestamise abil viib Yarn suurte projektide puhul installid sageli oluliselt kiiremini lõpule.
Ketta kasutamine on veel üks tugev külg, eriti kui kasutate PnP-d. Elimineerides node_modules, võib tüüpiline projekt tarbida oluliselt vähem kettaruumi ning PnP-ga hästi integreeruvad tööriistad saavad kasu kiiremast moodulite eraldusvõimest, kuna Node ei pea enam sügavates ja korduvates kataloogipuudes kõndima.
Lukustusfaili käitumise osas Yarni yarn.lock on laialdaselt hinnatud selle kompaktsuse ja kõrge determinismi poolest. See salvestab selgesõnaliselt lahendusotsused, mis lihtsustab arusaamist, miks konkreetne versioon valiti, ja versioonikonfliktide silumist.
Monorepos on valdkond, kus Yarn on oma tööruumide funktsiooni tõttu juba ammu ees olnud. Tööruumide abil jagavad ühes hoidlas olevad mitu paketti lukustusfaili, sõltuvused tõstetakse tõhusalt üles ja kohalikud paketid lingitakse automaatselt ilma konfiguratsioonivormita.
Reaalses maailmas esinevad kasutusjuhud, kus Yarn selgelt silma paistab, hõlmavad sageli keerulisi CI/CD seadistusi, suuri jagatud koodibaase või keskkondi ettevõtte puhverserverite ja kohandatud sertifikaatide taga. Näiteks jooksmine yarn install --immutable CI sees tagab, et installimine ebaõnnestub, kui yarn.lock fail ei sobi package.json, mis püüab kinni ebajärjekindlad sõltuvusseisundid enne nende tootmiskeskkonda jõudmist.
Teisest küljest on npm endiselt täiesti sobiv valik väiksematele projektidele või meeskondadele, kes on sügavalt investeerinud npm ökosüsteemi. Kui haldate vaid käputäit teenuseid tagasihoidlike sõltuvuspuudega ja ei sõltu suuresti monorepodest või PnP-st, võib npm-i juurde jäämise lihtsus kaaluda üles Yarni täiustatud funktsioonid.
Operatsioonisüsteemipõhised installimisvalikud
Kuigi globaalse CLI npm-põhine install töötab peaaegu kõikjal, pakub Yarn ka operatsioonisüsteemispetsiifilisi jaotusi ja skripte. Need on kasulikud, kui eelistate natiivseid paketihaldureid või kui töötate süsteemides, millel puudub mugav npm-seadistus.
macOS-is on väga populaarne valik Yarni installimine Homebrewi kaudu. Tüüpiline töövoog, eeldades, et sul on juba Node (võimalik, et ka Homebrew' kaudu), on järgmine:
brew install yarn
Kui kasutate nvm-i või mõnda muud sõlme versioonihaldurit, veenduge, et shims-kataloog kuvatakse teie teekonnas (PATH) enne kõiki Homebrew-sõlmi. Vastasel juhul võite Yarn-skriptide käivitamisel kasutada oodatust erinevat Node'i versiooni.
Teine võimalus macOS-is on MacPorts, mis saab installida nii Node.js kui ka Yarn'i, kui neid veel pole. Veelgi suurema kontrolli tagamiseks avaldab Yarn ka installimisskripti, mis töötab macOS-is ja üldises Unixis; see skript suunatakse teie shelli, laaditakse alla ja seadistatakse Yarn ühe korraga.
Windowsi puhul on soovitatavad teed MSI installer, Chocolatey või Scoop. MSI installija juhendab teid graafilise viisardi abil ja tavaliselt tagab Node.js olemasolu protsessi osana. Scoop seevastu võimaldab teil Yarni installida käsurealt, pakkudes valikuliselt välja Node'i, kui see puudub.
Yarni installimisel Windowsi on väga hea mõte lisada nii oma projektikaust kui ka Yarni vahemälu kataloog valgesse nimekirja, tavaliselt jaotisse %LocalAppData%\Yarn, oma viirusetõrjes. Vastasel juhul võidakse skannida iga faili allalaadimist ja kirjutamist, mis aeglustab oluliselt installimist.
Linuxi distributsioonid pakuvad sageli mitut võimalust: ametlikke süsteemipakette, Yarni enda repositooriume või käsitsi tarball-installatsioone. Näiteks Debianis ja Ubuntus saate lisada Yarni APT-hoidla, soovi korral seadistada NodeSource'i hankima uusima Node.js-i ja seejärel Yarni installida apt.
Selliste distributsioonide nagu CentOS, Fedora, RHEL või Arch puhul pakub Yarn GPG-allkirjastatud tarballe, mida saab alla laadida ja lahti pakkida ükskõik kuhu kettale. Nendes käsitsi seadistamistes peate tavaliselt tarballi allkirja GPG-ga kontrollima ja seejärel pakkimata Yarn'i kataloogi oma PATH-i lisama, et yarn käsk on saadaval kogu süsteemi ulatuses.
PATH-i konfiguratsioon Unixis, Linuxis ja Windowsis
Paigaldamise ajal on tavaline segaduse allikas PATH-konfiguratsioon: lõng võib olla installitud, kuid kest ei leia binaarfaili. Sellisel juhul peate oma keskkonda värskendama nii, et Yarn kataloog oleks lisatud PATH muutujasse.
Unixi-laadsetele süsteemidele käsitsi tarball-faili installimisel on tavapärane muster eksportida tee, mis osutab Yarni lehele bin kataloog. Näiteks:
export PATH="$PATH:/opt/yarn-[version]/bin"
Selle rea lisate oma shelli profiilifaili (näiteks .bashrc, .bash_profile, .zshrcvõi sarnast), seejärel avage uus terminaliseanss või hankige failile allikas, et muudatus jõustuks. Kui see on tehtud, yarn --version peaks töötama igast kataloogist.
Kui sa toetud yarn global käskude puhul peab Yarn ka veenduma, et selle globaalne prügikast asub tee (PATH) peal. Kiire viis selle saavutamiseks on oma profiili laiendada järgmiselt:
export PATH="$PATH:`yarn global bin`"
Kalakoorikute kasutajad loodavad hoopis fish_user_paths ja saab käivitada:
set -U fish_user_paths (yarn global bin) $fish_user_paths
Windowsi puhul peate võib-olla ka Yarni binaarkataloogi käsitsi lisama keskkonnamuutujasse PATH. Lihtne näide oleks:
set PATH=%PATH%;C:\.yarn\bin
Praktikas tegelevad PATH-i konfiguratsiooniga sageli graafilised installijad või Windowsi paketihaldurid, kuid kasulik on teada, kuidas seda käsitsi muuta, kui miski ei tööta ootuspäraselt.
Tüüpilised paigaldusprobleemid ja nende lahendamine
Isegi selge dokumentatsiooni korral ilmnevad teatud installiprobleemid ikka ja jälle, kui meeskonnad Yarni kasutusele võtavad. Õnneks on enamikul neist hästi mõistetavad ja korratavad lahendused.
Üks korduv probleem on lubadega seotud vead globaalse CLI installimisel npm-i kaudu. Kui teie npm-i eesliide osutab süsteemile kuuluvale kataloogile, siis selline käsk:
sudo npm install -g yarn
võib toimida, aga pikas perspektiivis pole ideaalne. Parem variant on seadistada npm kasutama kasutajale kuuluvat globaalset kataloogi. Praegust eesliidet saab kontrollida järgmiselt:
npm config get prefix
Kui see viitab millelegi allpool /usr, loo oma kataloog ja seadista npm uuesti. Näiteks:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
Pärast shelli konfiguratsiooni uuesti laadimist peaksite saama Yarni globaalselt installida ilma sudo, vältides paljusid lubadega seotud peavalusid.
Teine sagedane segaduse allikas on globaalse Yarn ja projekti Yarn versioonide erinevused. Pea meeles, et see on taotluslik: globaalne 1.x CLI on lihtsalt käivitaja ja kui seda kasutatakse Berry-konfiguratsiooniga projektis, delegeerib see ülesanded mis tahes väljaandele, mis asub projektis. .yarn/releases.
Kui paketid näivad puuduvat, kuigi Yarn teatas edukast installimisest, võib teil olla tööriist, mis veel PnP-st aru ei saa. Mõned redaktorid, linterid või ehitustööriistad eeldavad a node_modules kataloogi ja ebaõnnestub, kui seda pole olemas. Levinud lahenduste hulka kuuluvad Yarni SDK-de lubamine redaktoritele, Yarni tugimaatriksi ühilduvate tööriistade kasutamine või linkeri ajutine lülitamine node-modules kaudu .yarnrc.yml.
Lukustusfailide konfliktid on aktiivsetes meeskondades vältimatud, kus mitu haru lisavad või muudavad sõltuvusi paralleelselt. Kui yarn.lock konfliktide korral ühendamise ajal on efektiivne strateegia valida üks haru baasjooneks, lahendada tekstikonfliktid käsitsi selle baasjoone kasuks, kui see on võimalik, ja seejärel käivitada yarn install et taastada puhas lukustusfail, mille sa uuesti uue tõeallikana commit'id.
Vahemäluga seotud probleemid lahendatakse tavaliselt lihtsa toiminguga yarn cache clean millele järgneb värske yarn install. Kui Yarn käitub veidralt, paketid näevad aegunud välja või ilmnevad kummalised eraldusvõime vead, siis vahemälu puhastamine ja uuesti installimine taastab süsteemi sageli normaalsesse olekusse ilma edasise uurimiseta.
Paigaldamisjärgsed kontrollid ja pidev jõudluse häälestamine
Kui Yarn on installitud ja käske edukalt käivitatakse, tasub teha paar kiiret tervisekontrolli, et veenduda, et kõik on teie projekti jaoks õigesti ühendatud. Esimene ja lihtsaim on versiooni kinnitamine:
yarn --version
Pärast seda, igas projektis, millel on juba olemas package.json, täidesaatev yarn install ilma vigadeta on kindel näitaja, et teie keskkond, registri juurdepääs ja sõlme versioon on ühilduvad. Kui teie sõltuvused on suured, võiksite jälgida installiaega; järgnevatel käivitamistel peaksid Yarni vahemällu salvestamine ja samaaegsus seda aega märkimisväärselt lühendama.
Lõng pakub ka käske nagu yarn outdated et näha, millistel pakettidel on uuemad versioonid saadaval, ja yarn list --depth=0 kõigi tegelikult installitud tipptasemel sõltuvuste printimiseks. Need tööriistad aitavad teil jälgida sõltuvuste nihet ja otsustada, millal uuendusi ajastada.
Jõudluse osas on pärast paigaldamist mitu hooba, mida saate tõmmata. Seaded nagu networkConcurrency, kohandatud vahemälukaustade või loogilise konfiguratsiooniintervalli (CI) pikalt edenemisribade keelamise abil saab suurte installide aega sekundite või isegi minutitega lühendada. Näiteks samaaegsuse suurendamine järgmiste installidega:
yarn config set network-concurrency 8
võimaldab Yarnil saata paralleelselt rohkem võrgupäringuid, kiirendades kiirete ühenduste korral sageli allalaadimist.
Lõpuks, väga suurte monorepode või mitme keskkonnaga seadistuste puhul võimaldab Yarni kombineerimine skaleeritava infrastruktuuriga (näiteks konteineripõhiste CI-torustike või pilveehitusplatvormidega) täielikult ära kasutada selle deterministlikku ja vahemälusõbralikku disaini. Sest iga paigaldust juhib yarn.lock ja PnP või node_modules metaandmed, CI-sõlmede vahel jagatud või eri versioonide vahel taaskasutatud vahemälud võivad installimisaega oluliselt lühendada.
Kokkuvõttes tasub Yarni õigesti installimise, projektipõhise kinnitamise, PATH-i ja konfiguratsiooni kohandamise ning vahemälu ja tööruumi funktsioonide kasutamise mõistmiseks aja võtmine kiiresti ära. Lõpptulemuseks on kiiremad installid, prognoositavamad järgud, parem monorepo ergonoomika ja sõltuvuste haldamise töövoog, mida on meeskonnakaaslaste, CI/CD-süsteemide ja tootmiskeskkondade vahel lihtsam reprodutseerida.