- Yarn používá dvouúrovňový model: jedno globální CLI a verzi vázanou na projekt pro konzistentní chování.
- Deterministické instalace s yarn.lock a agresivním ukládáním do mezipaměti poskytují rychlou a reprodukovatelnou správu závislostí.
- Moderní Yarn Berry přidává PnP, pracovní prostory a .yarnrc.yml pro flexibilní propojování, ukládání do mezipaměti a integraci editoru/CI.
- Správné nastavení cesty PATH, manipulace s uzamčenými soubory a správa mezipaměti jsou nezbytné pro zamezení běžným problémům s instalací.

Pokud se snažíte nainstalovat Yarn pro své JavaScriptové projekty a cítíte se trochu ztraceni mezi tolika možnostmi, nejste sami. Yarn se v posledních letech hodně vyvinul, existuje koexistenčně s npm a existují různé verze a instalační postupy v závislosti na operačním systému a dokonce i na stylu projektu, který používáte (monorepo, PnP, classic node_modules atd.).
Dobrou zprávou je, že jakmile pochopíte, jak se Yarn instaluje a jak funguje jeho dvouúrovňový model (globální CLI + Yarn specifický pro projekt), všechno začne dávat smysl. V této příručce si podrobně projdeme, jak nainstalovat Yarn na nejběžnější systémy, jak ho propojit se skutečným JavaScriptovým projektem, čím se liší od npm a jak řešit typické problémy, které se obvykle objeví při jeho prvním použití.
Co je příze a proč je stále důležitá pro JavaScriptové projekty
Yarn je správce balíčků pro Node.js navržený se třemi hlavními cíli: rychlost, bezpečnost a deterministické instalace. Vznikl jako alternativa k npm v době, kdy mělo npm problémy s výkonem a spolehlivostí, a i když se npm od té doby hodně zlepšil, Yarn zůstává extrémně populární, zejména v oblasti Reactu a moderních frontendových stacků.
Jednou z klíčových silných stránek Yarn je jeho deterministický instalační proces, založený na yarn.lock soubor. Tento soubor opravuje přesné verze všech přímých a tranzitivních závislostí, takže instalace na různé počítače nebo CI servery vždy vrátí stejný strom závislostí, čímž se eliminuje klasický problém „funguje to pouze na mém notebooku“.
Další charakteristickou vlastností je agresivní chování při ukládání do mezipaměti, které umožňuje Yarnu znovu použít jakýkoli balíček, který již stáhl. Díky tomu jsou opakované instalace dramaticky rychlejší a Yarn může fungovat i v offline režimu, pokud byly všechny potřebné balíčky dříve uloženy do mezipaměti.
Modern Yarn (často nazývaný „Berry“ pro verze 2.x, 3.x a 4.x) přináší další pokročilé funkce, jako je Plug'n'Play (PnP) a pracovní prostory. PnP může zcela odstranit tradiční node_modules složku nahrazením soubory manifestu, které Node.js přesně sdělují, kde se který balíček nachází, čímž se ušetří spoustu místa na disku a zrychlí některé operace. Pracovní prostory jsou naopak ideální pro monorepozitáře, propojují více balíčků v jednom repozitáři se sdíleným lockfile a centrální správou závislostí.
Z bezpečnostního hlediska Yarn ověřuje kontrolní součty každého balíčku před jeho spuštěním. Toto ověření integrity přidává další vrstvu ochrany před poškozenými nebo pozměněnými artefakty, což je obzvláště užitečné v podnikovém nebo citlivém prostředí.
Porozumění přízi Yarn Classic vs. Yarn Berry (Moderní příze)

Než se budeme bavit o instalaci, je důležité si uvědomit, že existují dvě velké rodiny přízí: Classic (1.x) a Berry (2.x/3.x/4.x). Yarn Classic se nachází ve vlastním historickém repozitáři a dostává pouze bezpečnostní opravy, zatímco veškerý aktivní vývoj se zaměřuje na novější řadu Berry hostovanou v yarnpkg/berry zbytek.
Příze Yarn Classic (kolem 1.22) je to, co většina lidí stále používá při instalaci globálního yarn CLI s npm. Toto globální CLI dnes většinou funguje jako spouštěč: uvnitř projektu, který byl nakonfigurován pomocí Berry, globální příkaz jednoduše deleguje provádění na lokální verzi Yarn specifickou pro daný projekt, takže můžete upgradovat sadu nástrojů projektu bez nutnosti dotýkat se globálních nástrojů.
Yarn Berry zavádí hluboké architektonické změny, zejména Plug'n'Play a výkonný systém pluginů. Berry ve výchozím nastavení preferuje PnP místo node_modules, podporuje pracovní postupy s nulovou instalací (závislosti odeslané do repozitáře) a umožňuje jemně odstupňovanou konfiguraci prostřednictvím .yarnrc.yml, včetně toho, jak jsou moduly propojeny, jak jsou spravovány mezipaměti nebo jak jsou definovány registry a proxy.
Samotní správci Yarn důrazně doporučují migraci z verze 1.x na nejnovější verzi Berry, kdykoli je to možné. Moderní verze jsou aktivně udržovány déle, opravují celé řady problémů přítomných v klasické verzi a nabízejí flexibilitu konfigurace prostřednictvím... nodeLinker nastavení, abyste stále mohli používat klasický node_modules rozvržení nebo symbolické odkazy ve stylu pnpm, když PnP není vhodný.
Pokud váš ekosystém nebo nástroje ještě nejsou připraveny na PnP, nezůstali jste na holičkách. Jednoduchým nastavením nodeLinker: node-modules in .yarnrc.ymlBerry se chová blíže tradičním instalacím npm a zároveň si zachovává svůj deterministický lockfile, chování při ukládání do mezipaměti a vylepšené rozhraní CLI.
Systémové požadavky a globální strategie instalace příze
Bez ohledu na váš operační systém je pro Yarn nejdůležitějším požadavkem nainstalovaný Node.js. Yarn je CLI založené na Node a jeho spuštění závisí na Node, takže byste si měli nejprve rychlým kliknutím ověřit, zda je Node k dispozici. node -v ve vašem terminálu. Pokud se místo chyby „příkaz nenalezen“ zobrazí číslo verze, můžete začít.
Pokud Node.js chybí nebo je zastaralý, nainstalujte nebo aktualizujte jej pomocí metody doporučené pro vaši platformu. V Linuxu můžete použít distribuční balíčky nebo repozitáře NodeSource, v macOS můžete preferovat Homebrew, MacPorts nebo nvm a ve Windows oficiální instalační program nebo správce balíčků jako Chocolatey nebo Scoop. Mnoho Yarn workflow předpokládá alespoň Node 14.18 a pro Berry je obvykle ideální Node 16 nebo 18 LTS.
Autoři Yarn doporučují dvouvrstvý instalační model. Nejprve nainstalujte globální yarn CLI jednou (nejčastěji přes npm) a poté v každém projektu použít tento globální příkaz ke konfiguraci projektově specifické verze Yarn, která se nachází přímo v repozitáři. To zaručuje, že všichni přispěvatelé a CI úlohy spustí přesně stejnou verzi Yarn definovanou projektem.
Instalace globálního rozhraní příkazového řádku Yarn pomocí npm je jednoduchá. Protože npm je standardně dodáván s Node.js, můžete spustit:
sudo npm install -g yarn
Po dokončení instalace ověřte, zda je globální rozhraní příkazového řádku dosažitelné. Běh:
yarn --version
Pokud vidíte něco jako 1.22.x, to znamená, že globální klasický spouštěč funguje správně. Od této chvíle, kdy vstoupíte do projektu, který používá Berry, tento globální příkaz transparentně předá řízení lokálně nakonfigurované verzi Yarn uložené v repozitáři.
Instalace příze v konkrétním projektu JavaScript
Jakmile je globální CLI připraveno, dalším krokem je „připnout“ konkrétní verzi Yarn ke každému projektu. Přesně to zajišťuje konzistenci napříč počítači vašich kolegů a vašimi CI/CD pipelinemi: všichni používají stejný binární soubor Yarn, a proto sdílejí stejné chování.
Začněte tím, že přejdete do adresáře vašeho projektu (nebo si vytvořte nový, pokud spouštíte novou aplikaci). Například:
mkdir my-project
cd my-project
Uvnitř této složky použijte speciální yarn set version příkaz pro výběr moderní verze Berry. Typickou volbou je sledování aktivně se rozvíjející linie „bobulí“:
yarn set version berry
V zákulisí Yarn převede „berry“ na nejnovější binární soubor Berry, stáhne ho a uloží dovnitř. .yarn/releases adresář ve vašem projektu. Zároveň vytváří nebo aktualizuje .yarnrc.yml soubor v kořenovém adresáři projektu, který globálnímu spouštěči sdělí, aby delegoval na tento lokální binární soubor.
Pokud nyní běžíte yarn --version opět z projektu se výstup změní na verzi připnutou k projektu. Možná uvidíte něco jako 4.5.0 nebo jinou verzi 3.x/4.x, což znamená, že již nepoužíváte globální Classic CLI, ale lokální Berry CLI hostované ve vašem repozitáři.
Od tohoto okamžiku bude každý příkaz Yarn spuštěný v daném adresáři (nebo jeho podadresářích) používat verzi Yarn specifickou pro daný projekt. To umožňuje týmu postupně migrovat různé projekty na novější verze Yarn vlastním tempem a zároveň mít na vývojářských počítačích nainstalovaný jeden globální launcher.
Základní příkazy pro každodenní vývoj v Yarn
Jakmile je Yarn nainstalován a zapojen do vašeho projektu, potřebujete pouze malou podmnožinu příkazů pro pokrytí většiny každodenních úkolů. Rozhraní příkazového řádku je rozsáhlé, ale několik dílčích příkazů vám již umožní spravovat závislosti a skripty s dostatečnou funkcionalitou.
Kdykoli se cítíte v zaseknutí nebo chcete prozkoumat další možnosti, každý příkaz přijímá příznak nápovědy. Běh:
yarn --help
vypíše obecnou nápovědu a zároveň připojí --help po konkrétním dílčím příkazu získáte kontextové tipy pro použití. Například, yarn install --help vysvětluje všechny dostupné příznaky pro proces instalace závislostí.
Pro spuštění zcela nového projektu můžete požádat Yarn o vygenerování základních konfiguračních souborů. Uvnitř prázdné složky jednoduše spusťte:
yarn init
Tento příkaz vás provede několika výzvami a vypíše package.json plus yarn.lock soubor. První deklaruje metadata, skripty a závislosti vašeho projektu, zatímco druhý slouží jako kanonický záznam přesných verzí, které Yarn vyřešil v době instalace.
Při připojení k existujícímu repozitáři, který již používá Yarn, je typickým výchozím bodem instalace všech závislostí. Z kořenového adresáře projektu stačí spustit:
yarn install
Příze pak čte package.json a yarn.lock, stáhne vše chybějící a nastaví strom závislostí. Díky ukládání do mezipaměti budou následné instalace, a to i na CI, mnohem rychlejší než počáteční spuštění.
Přidávání nových závislostí je stejně jednoduché jako u add podpříkaz. Pro instalaci například Expressu byste použili:
yarn add express
Tento jediný příkaz načte balíček, aktualizuje package.json a osvěžuje yarn.lock. Není třeba ručně upravovat soubory JSON; Yarn pro vás synchronizuje deklarované rozsahy a uzamčené verze.
Rychlá kontrola příčetnosti: Malý expresní server s přízí
Pokud si chcete být naprosto jisti, že Yarn funguje tak, jak má, můžete napsat malý kouřový test pomocí Expressu. Za předpokladu, že jste v projektu a již jste ho spustili yarn add express, vytvořte soubor s názvem index.js s následujícím minimálním serverem:
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"));
Místo přímého volání Node můžete tento skript spustit přes Yarn, což může být výhodné v prostředí PnP. Použití:
yarn node index.js
Otevřete další terminál a ověřte, zda server správně reaguje. Jednoduché:
curl http://localhost:3000
by měla vrátit zprávu „Příze funguje!“. Pokud se to stane, víte, že Yarn vyřešil závislost, propojil rozlišení modulů a spustil skript bez problémů.
Správa závislostí, skriptů a mezipaměti příze
Kromě instalace a základních doplňků nabízí Yarn několik utilit pro čistou údržbu a vývoj grafu závislostí. Tyto příkazy zabraňují ruční úpravě a zachovávají package.json a yarn.lock konzistentní za všech okolností.
Chcete-li odstranit závislost, kterou již nepotřebujete, použijte remove podpříkaz. Například:
yarn remove package-name
Yarn odinstaluje balíček, odstraní ho z package.jsona odpovídajícím způsobem aktualizujte soubor lockfile. Tím se zabrání tomu, aby zastaralé nebo nepoužívané moduly přetrvávaly ve stromu závislostí.
Aktualizace závislostí lze provádět hromadně nebo pro konkrétní balíček. Bez argumentů,
yarn upgrade
rozpozná kompatibilní novější verze podle vámi deklarovaných rozsahů, zatímco:
yarn upgrade package-name
cílí na jednu závislost. V obou případech Yarn přepisuje yarn.lock aby odrážel aktualizovaný graf závislostí.
Když váš projekt definuje skripty v package.json, Příze run subcommand je způsob, jak je spustit. Skript jako:
"scripts": {
"start": "node index.js"
}
lze spustit pomocí:
yarn run start
a v mnoha případech kratší yarn start alias také funguje. To poskytuje čistou vrstvu abstrakce nad Node nebo jinými nástroji, bez ohledu na vaši základní strategii propojování modulů.
Yarn uchovává lokální nebo globální mezipaměť všech dříve stažených balíčků, aby urychlil instalaci a zajistil offline chování. Někdy, zejména po experimentech nebo přepnutí více verzí, může být mezipaměť zašuměná nebo poškozená. Kdykoli máte podezření na problémy s mezipamětí, můžete ji resetovat pomocí:
yarn cache clean
Pokud vás zajímá, kde Yarn ukládá tyto artefakty z mezipaměti, yarn cache dir vytiskne umístění. To je obzvláště užitečné, když potřebujete v antivirovém programu ve Windows přidat složku mezipaměti na bílou listinu, abyste se vyhnuli pomalým instalacím způsobeným agresivním skenováním každého staženého souboru.
Konfigurace příze pomocí .yarnrc.yml
Modern Yarn centralizuje konfiguraci projektu v .yarnrc.yml soubor. Tento dokument YAML řídí, jak jsou závislosti propojeny, kde se nacházejí mezipaměti, jak striktní by mělo být PnP, adresy URL registru, telemetrii a další.
Typická konfigurace by mohla vypadat takto:
nodeLinker: pnp
pnpMode: strict
compressionLevel: mixed
enableGlobalCache: true
enableTelemetry: false
Jedno nodeLinker Nastavení je obzvláště důležité, protože definuje, jak jsou moduly řešeny. Platné možnosti zahrnují pnp (Plug'n'Play bez node_modules složka), node-modules (klasické rozvržení) a někdy i linker ve stylu pnpm. Pokud narazíte na problémy s kompatibilitou s nástroji, které hardcode node_modules předpoklady, přechod k node-modules je často řeší.
compressionLevel říká Yarn, jak agresivně má komprimovat balíčky uložené v mezipaměti. Hodnota 0 zcela vypne kompresi pro dosažení maximální rychlosti, 1 vynucuje plnou kompresi pro minimální využití disku a mixed vyvažuje oba světy, což bývá pro většinu týmů rozumným výchozím nastavením.
Povolení enableGlobalCache způsobí, že Yarn znovu použije sdílený adresář mezipaměti napříč více projekty. Tímto způsobem, pokud několik repozitářů závisí na stejných knihovnách, Yarn se vyhne jejich opakovanému stahování, čímž ušetří jak šířku pásma sítě, tak místo na disku.
Konečně, enableTelemetry řídí, zda Yarn odesílá anonymní informace o použití zpět správcům. Mnoho společností dává přednost vypnutí této funkce z důvodů ochrany soukromí a dodržování předpisů, zatímco jiné ji nechávají zapnutou, aby pomohly s plánováním projektu; v každém případě se jedná pouze o příznak v tomto konfiguračním souboru.
Integrace s Gitem: Co commitovat a co ignorovat
Protože Yarn ukládá část svých strojů uvnitř .yarn V adresáři je důležité si uvědomit, co se stává součástí správy verzí. Některé z těchto souborů by měly být bezpodmínečně sledovány, zatímco jiné jsou artefakty mezipaměti nebo sestavení, které by jen zahltily repozitář.
Minimální .gitignore Strategie používaná v mnoha projektech Berry vypadá takto:
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
Tento vzorec ignoruje celý .yarn složku, ale poté přidá na bílou listinu podadresáře, které je třeba potvrdit. Jedno releases Například adresář obsahuje binární soubor Yarn specifický pro daný projekt; bez něj by ostatní vývojáři při klonování repozitáře nemuseli získat přesně stejnou verzi CLI.
Další cesty na seznamu povolených, jako například .yarn/plugins or .yarn/sdks obsahovat vlastní pluginy a integrace editorů. Jejich udržování pod kontrolou verzí zajišťuje, že všichni v týmu sdílejí stejnou sadu pluginů a jazykovou podporu.
Jedno .pnp.* Položky jsou soubory manifestu Plug'n'Play, které popisují strom závislostí, pokud používáte režim PnP. Jejich commit je nezbytný pro reprodukovatelné a někdy i nulovou instalaci, kde CI nebo nové klony mohou spustit projekt okamžitě bez nutnosti regenerace manifestů.
Navíc si pamatujte, že yarn.lock je ve vašem repozitáři občanem první třídy. Musí být vždy commitován a aktualizován spolu se změnami závislostí, jinak všechny výhody determinismu, které Yarn nabízí, zmizí.
Příze vs. npm: Když příze skutečně září
Yarn a npm řeší stejný základní problém: správu závislostí Node.js, ale Yarn se v několika praktických scénářích odlišuje. Nejviditelnějším rozdílem je často výkon: díky paralelním instalacím a inteligentnějšímu ukládání do mezipaměti Yarn často dokončuje instalace u velkých projektů výrazně rychleji.
Využití disku je další silnou stránkou, zvláště pokud používáte PnP. Vyřazením node_modules, typický projekt může spotřebovat dramaticky méně místa na disku a nástroje, které se dobře integrují s PnP, mohou těžit z rychlejšího rozlišení modulů, protože Node již nemusí procházet hluboké a repetitivní adresářové stromy.
Pokud jde o chování lockfile, Yarnův yarn.lock je široce ceněn pro svou kompaktnost a vysokou determinističnost. Explicitně zaznamenává rozhodnutí o řešení, což usnadňuje pochopení, proč byla vybrána konkrétní verze, a ladění konfliktů verzí.
Monorepozitáře jsou oblastí, kde je Yarn díky své funkci pracovních prostorů dlouhodobě napřed. Díky pracovním prostorům sdílí více balíčků v jednom repozitáři lockfile, závislosti jsou efektivně zpřístupňovány a lokální balíčky jsou automaticky propojovány bez nutnosti konfigurace.
Mezi případy použití v reálném světě, kde Yarn jasně vyniká, často patří komplexní nastavení CI/CD, rozsáhlé sdílené kódové základny nebo prostředí za firemními proxy a vlastními certifikáty. Například běh yarn install --immutable uvnitř CI zajišťuje, že instalace selže, pokud yarn.lock soubor se neshoduje package.json, který zachycuje nekonzistentní stavy závislostí ještě předtím, než se dostanou do produkčního prostředí.
Na druhou stranu je npm stále perfektní volbou pro menší projekty nebo týmy hluboce investované do ekosystému npm. Pokud spravujete pouze hrstku služeb se skromnými stromy závislostí a nespoléháte se příliš na monorepozitáře nebo PnP, může jednoduchost používání npm převážit nad pokročilými funkcemi Yarnu.
Možnosti instalace specifické pro operační systém
Ačkoli instalace globálního CLI založená na npm funguje téměř všude, Yarn nabízí i distribuce a skripty specifické pro operační systém. Tyto funkce jsou užitečné, pokud dáváte přednost nativním správcům balíčků nebo pokud pracujete na systémech bez pohodlného nastavení npm.
V systému macOS je velmi oblíbenou volbou instalace Yarn přes Homebrew. Typický postup, za předpokladu, že již máte Node (možná i přes Homebrew), je:
brew install yarn
Pokud používáte nvm nebo jiný správce verzí uzlů, ujistěte se, že adresář shims se v cestě PATH nachází před jakýmkoli uzlem Homebrew. Jinak můžete při spouštění Yarn skriptů použít jinou verzi Node, než jste očekávali.
Další možností v macOS je MacPorts, který dokáže nainstalovat Node.js i Yarn, pokud ještě nejsou k dispozici. Pro ještě větší kontrolu Yarn také publikuje instalační skript, který funguje na macOS a generickém Unixu; tento skript se vloží do vašeho shellu a Yarn se stáhne a nastaví najednou.
Ve Windows jsou doporučené cesty instalační program MSI, Chocolatey nebo Scoop. Instalační program MSI vás provede grafickým průvodcem a obvykle zajistí, aby byl Node.js součástí procesu. Scoop na druhou stranu umožňuje nainstalovat Yarn z příkazového řádku a volitelně navrhne Node, pokud chybí.
Při instalaci Yarn na Windows je velmi dobrý nápad přidat na bílou listinu jak složku projektu, tak i adresář mezipaměti Yarn, obvykle pod %LocalAppData%\Yarn, ve vašem antivirovém programu. Jinak může být skenován každý jednotlivý soubor ke stažení a zápisu, což dramaticky zpomalí instalaci.
Linuxové distribuce často nabízejí více možností: oficiální systémové balíčky, vlastní repozitáře Yarn nebo ruční instalace z tarballu. Například na Debianu a Ubuntu můžete přidat APT repozitář Yarn, volitelně nakonfigurovat NodeSource pro získání nejnovější verze Node.js a poté nainstalovat Yarn pomocí... apt.
Na distribucích jako CentOS, Fedora, RHEL nebo Arch nabízí Yarn tarbally s GPG podpisem, které si můžete stáhnout a rozbalit kdekoli na disku. V těchto manuálních nastaveních obvykle potřebujete ověřit podpis tarballu pomocí GPG a poté přidat rozbalený adresář Yarn do vaší cesty PATH, aby yarn Příkaz je dostupný v celém systému.
Konfigurace PATH v systémech Unix, Linux a Windows
Častým zdrojem nejasností během instalace je konfigurace PATH: Yarn sice může být nainstalován, ale shell nemůže najít binární soubor. V takovém případě musíte aktualizovat své prostředí tak, aby adresář Yarn byl zahrnut v proměnné PATH.
Pro ruční instalaci tarballu na unixových systémech je obvyklým postupem export cesty ukazující na Yarnův soubor. bin adresáře. Například:
export PATH="$PATH:/opt/yarn-[version]/bin"
Tento řádek umístíte do souboru profilu shellu (například .bashrc, .bash_profile, .zshrcnebo podobné), poté otevřete novou terminálovou relaci nebo načtěte soubor, aby se změna projevila. Jednou hotovo, yarn --version mělo by fungovat z libovolného adresáře.
Pokud se opřete o yarn global příkazy, Yarn se také musí ujistit, že jeho globální složka bin je v cestě PATH. Rychlý způsob, jak toho dosáhnout, je rozšířit svůj profil o:
export PATH="$PATH:`yarn global bin`"
Uživatelé rybích skořápek se místo toho spoléhají na fish_user_paths a může běžet:
set -U fish_user_paths (yarn global bin) $fish_user_paths
Ve Windows může být nutné ručně přidat binární adresář Yarn do proměnné prostředí PATH. Jednoduchý příklad by byl:
set PATH=%PATH%;C:\.yarn\bin
V praxi grafické instalační programy nebo správci balíčků systému Windows často řeší konfiguraci PATH za vás, ale je užitečné vědět, jak ji upravit ručně, když něco nefunguje podle očekávání.
Typické problémy s instalací a jejich oprava
I s jasnou dokumentací se při implementaci Yarn týmy opakovaně objevují určité problémy s instalací. Naštěstí většina z nich má dobře srozumitelná a opakovatelná řešení.
Jedním opakujícím se problémem jsou chyby související s oprávněními při instalaci globálního rozhraní příkazového řádku pomocí npm. Pokud váš prefix npm odkazuje na adresář vlastněný systémem, příkaz jako:
sudo npm install -g yarn
může to fungovat, ale z dlouhodobého hlediska to není ideální. Lepším vzorem je nakonfigurovat npm tak, aby místo toho používal globální adresář vlastněný uživatelem. Svůj aktuální prefix můžete zkontrolovat pomocí:
npm config get prefix
Pokud ukazuje na něco pod /usr, vytvořte si vlastní adresář a překonfigurujte npm. Například:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
Po opětovném načtení konfigurace shellu byste měli být schopni nainstalovat Yarn globálně bez... sudo, čímž se vyhnete mnoha problémům s oprávněními.
Dalším častým zdrojem nejasností jsou nesrovnalosti ve verzích mezi globálním objektem Yarn a objektem Yarn. Nezapomeňte, že je to záměrné: globální rozhraní CLI 1.x je pouze spouštěč a při použití uvnitř projektu nakonfigurovaného pomocí Berry deleguje na jakoukoli verzi, která se ve ní nachází. .yarn/releases.
Pokud se zdá, že balíčky chybí, i když Yarn ohlásil úspěšnou instalaci, pravděpodobně se jedná o nástroj, který ještě nerozumí PnP. Některé editory, lintery nebo nástroje pro sestavení předpokládají node_modules adresář a selže, pokud neexistuje. Mezi běžná řešení patří povolení Yarn SDK pro editory, použití kompatibilních nástrojů z matice podpory Yarn nebo dočasné přepnutí linkeru na node-modules přes .yarnrc.yml.
Konflikty uzamčených souborů jsou v aktivních týmech, kde více větví paralelně přidává nebo mění závislosti, nevyhnutelné. Kdy yarn.lock konflikty během slučování, efektivní strategií je vybrat jednu větev jako základní linii, řešit textové konflikty ručně ve prospěch této základní linie, pokud je to možné, a poté spustit yarn install k regeneraci čistého lockfile, který znovu zapíšete jako nový zdroj pravdivých informací.
Problémy s mezipamětí se obvykle řeší jednoduchým yarn cache clean následovaný čerstvým yarn install. Pokud se Yarn chová podivně, balíčky vypadají zastarale nebo se objevují podivné chyby při rozlišení, vyčištění mezipaměti a přeinstalace často vrátí systém do normálního stavu bez dalšího zkoumání.
Kontroly po instalaci a průběžné ladění výkonu
Jakmile je Yarn nainstalován a úspěšně spouští příkazy, stojí za to provést několik rychlých kontrol stavu, abyste se ujistili, že je vše pro váš projekt správně zapojeno. První a nejjednodušší je potvrzení verze:
yarn --version
Poté, v jakémkoli projektu, který již má package.json, provádění yarn install Hodnota bez chyb je silným indikátorem kompatibilního prostředí, přístupu k registru a verze uzlu. Pokud máte velké množství závislostí, možná budete chtít sledovat dobu instalace; při následných spuštěních by ukládání do mezipaměti a souběžnost v Yarnu měly tuto dobu výrazně zkrátit.
Yarn také nabízí příkazy jako yarn outdated zobrazit, které balíčky mají k dispozici novější verze, a yarn list --depth=0 vypsat všechny skutečně nainstalované závislosti nejvyšší úrovně. Tyto nástroje vám pomohou sledovat posun závislostí a rozhodnout se, kdy naplánovat upgrady.
Z hlediska výkonu existuje několik pák, které můžete po instalaci využít. Nastavení jako networkConcurrency, vlastní složky mezipaměti nebo zakázání podrobných ukazatelů průběhu v CI může zkrátit instalace o několik sekund nebo dokonce minut. Například zvýšení souběžnosti s:
yarn config set network-concurrency 8
Umožňuje Yarn odesílat více síťových požadavků paralelně, což často urychluje stahování na rychlých připojeních.
A konečně, pro velmi rozsáhlá monorepozitáře nebo víceprostřední nastavení vám kombinace Yarn se škálovatelnou infrastrukturou (jako jsou kontejnerové CI pipelines nebo cloudové platformy) umožní plně využít jeho deterministický a pro mezipaměť šetrný design. Protože každá instalace je řízena yarn.lock a PnP nebo node_modules Metadata, mezipaměti sdílené mezi uzly CI nebo opakovaně používané napříč sestaveními mohou dramaticky zkrátit dobu instalace.
Celkově vzato se vyplatí věnovat čas pochopení správné instalace Yarn, jeho připnutí pro každý projekt, úpravy PATH a konfigurace a využití jeho funkcí pro ukládání do mezipaměti a pracovní prostor. Získáte rychlejší instalace, předvídatelnější sestavení, lepší ergonomii monorepozitářů a pracovní postup správy závislostí, který se snáze reprodukuje napříč týmovými systémy, systémy CI/CD a produkčními prostředími.