- Yarn utilitza un model de dos nivells: una CLI global més una versió fixada al projecte per a un comportament coherent.
- Les instal·lacions deterministes amb yarn.lock i l'emmagatzematge en memòria cau agressiu ofereixen una gestió de dependències ràpida i reproduïble.
- Modern Yarn Berry afegeix PnP, espais de treball i .yarnrc.yml per a una vinculació flexible, emmagatzematge en memòria cau i integració d'editor/CI.
- La configuració correcta del PATH, la gestió dels fitxers de bloqueig i la gestió de la memòria cau són essencials per evitar problemes d'instal·lació comuns.

Si esteu intentant instal·lar Yarn per als vostres projectes de JavaScript i us sentiu una mica perduts entre tantes opcions, no esteu sols. Yarn ha evolucionat molt en els darrers anys, coexisteix amb npm, i hi ha diferents versions i fluxos d'instal·lació segons el sistema operatiu i fins i tot l'estil de projecte que utilitzeu (monorepo, PnP, node_modules clàssics, etc.).
La bona notícia és que un cop entengueu com s'instal·la Yarn i com funciona el seu model de dos nivells (CLI global + Yarn específic del projecte), tot comença a tenir sentit. En aquesta guia, explicarem detalladament com instal·lar Yarn en els sistemes més comuns, com connectar-lo a un projecte JavaScript real, què el diferencia de npm i com solucionar problemes típics que solen aparèixer la primera vegada que l'adopteu.
Què és el fil i per què encara és important per als projectes de JavaScript
Yarn és un gestor de paquets per a Node.js dissenyat amb tres grans objectius: velocitat, seguretat i instal·lacions deterministes. Va néixer com a alternativa a npm en un moment en què npm tenia problemes de rendiment i fiabilitat, i tot i que npm ha millorat molt des de llavors, Yarn continua sent extremadament popular, especialment al voltant de React i les piles de frontend modernes.
Un dels punts forts de Yarn és el seu procés d'instal·lació determinista, basat en yarn.lock arxiu. Aquest fitxer corregeix les versions exactes de totes les dependències directes i transitives, de manera que la instal·lació en màquines o servidors de CI diferents sempre produeix el mateix arbre de dependències, eliminant el clàssic problema de "només funciona al meu portàtil".
Una altra característica distintiva és el seu comportament agressiu d'emmagatzematge en memòria cau, que permet a Yarn reutilitzar qualsevol paquet que ja hagi descarregat. Gràcies a això, les instal·lacions repetides són molt més ràpides i Yarn pot funcionar fins i tot fora de línia si tots els paquets necessaris s'han emmagatzemat prèviament a la memòria cau.
Modern Yarn (sovint anomenat "Berry" per a les versions 2.x, 3.x i 4.x) aporta funcions avançades addicionals com ara Plug'n'Play (PnP) i espais de treball. El PnP pot eliminar completament el tradicional node_modules carpeta substituint-la per fitxers de manifest que indiquen a Node.js exactament on resideix cada paquet, cosa que estalvia molt d'espai en disc i accelera algunes operacions. Els espais de treball, en canvi, són perfectes per a monorepositoris, que enllaçen diversos paquets en un sol repositori amb un fitxer de bloqueig compartit i una gestió central de dependències.
Des d'una perspectiva de seguretat, Yarn verifica les sumes de verificació de cada paquet abans que s'executi. Aquesta validació d'integritat afegeix una capa addicional de protecció contra artefactes corruptes o manipulats, cosa que és especialment útil en entorns corporatius o sensibles.
Comprensió del fil clàssic vs. Yarn Berry (fil modern)

Abans de parlar de la instal·lació, és crucial entendre que hi ha dues grans famílies de fils: Clàssic (1.x) i Baia (2.x/3.x/4.x). Yarn Classic viu al seu propi repositori històric i només rep correccions de seguretat, mentre que tot el desenvolupament actiu se centra en la nova línia Berry allotjada a yarnpkg/berry descans.
Yarn Classic (al voltant de l'1.22) és el que la majoria de la gent encara aconsegueix quan instal·la el global yarn Interfície de línia de comandament (CLI) amb npm. Aquesta CLI global actualment actua principalment com a llançador: dins d'un projecte que s'ha configurat amb Berry, l'ordre global simplement delega l'execució a la versió local de Yarn específica del projecte, de manera que podeu actualitzar la cadena d'eines del projecte sense tocar les eines globals.
Yarn Berry introdueix canvis arquitectònics profunds, entre els quals destaca el Plug'n'Play i un potent sistema de complements. Per defecte, Berry prefereix PnP en comptes de node_modules, admet fluxos de treball sense instal·lació (dependències confirmades al repositori) i permet una configuració precisa mitjançant .yarnrc.yml, incloent-hi com s'enllacen els mòduls, com es gestionen les memòries cau o com es defineixen els registres i els proxies.
Els mateixos mantenidors de Yarn recomanen fermament la migració de la versió 1.x a l'última versió de Berry sempre que sigui possible. Les versions modernes s'han mantingut activament durant més temps, solucionen classes senceres de problemes presents a Classic i ofereixen flexibilitat de configuració a través de nodeLinker configuració perquè encara puguis utilitzar la versió clàssica node_modules disseny o enllaços simbòlics d'estil pnpm quan PnP no és una bona opció.
Si el vostre ecosistema o eines encara no estan preparats per al PnP, no esteu encallats. Simplement configurant nodeLinker: node-modules in .yarnrc.ymlBerry es comporta de manera més semblant a les instal·lacions tradicionals de npm, tot i que conserva el seu fitxer de bloqueig determinista, el comportament de memòria cau i una experiència CLI millorada.
Requisits del sistema i estratègia global d'instal·lació de fil
Independentment del vostre sistema operatiu, el requisit principal per a Yarn és tenir instal·lat Node.js. Yarn és una CLI basada en Node i depèn de Node per executar-se, per la qual cosa primer hauríeu de confirmar que Node està disponible amb una interfície d'usuari ràpida. node -v al vostre terminal. Si veieu un número de versió en comptes d'un error de "comanda no trobada", ja podeu començar.
Si falta Node.js o està obsolet, instal·leu-lo o actualitzeu-lo mitjançant el mètode recomanat per a la vostra plataforma. A Linux podeu utilitzar paquets de distribució o repositoris NodeSource, a macOS podeu preferir Homebrew, MacPorts o nvm, i a Windows l'instal·lador oficial o un gestor de paquets com Chocolatey o Scoop. Molts fluxos de treball de Yarn assumeixen com a mínim Node 14.18, i per a Berry, Node 16 o 18 LTS sol ser el punt ideal.
Els autors de Yarn recomanen un model d'instal·lació de dos nivells. Primer, instal·leu un global yarn CLI una vegada (normalment via npm) i, a continuació, dins de cada projecte, utilitzeu aquesta comanda global per configurar una versió de Yarn específica del projecte que es trobi directament al repositori. Això garanteix que tots els col·laboradors i les tasques de CI executin exactament la mateixa versió de Yarn definida pel projecte.
Instal·lar la CLI global de Yarn mitjançant npm és senzill. Com que npm ve per defecte amb Node.js, podeu executar:
sudo npm install -g yarn
Un cop finalitzada la instal·lació, verifiqueu que es pugui accedir a la CLI global. Correr:
yarn --version
Si veieu alguna cosa com 1.22.x, és a dir, el llançador global del Classic funciona correctament. A partir d'ara, quan entreu en un projecte que utilitza Berry, aquesta ordre global cedirà el control de manera transparent a la versió de Yarn configurada localment i emmagatzemada al repositori.
Instal·lació de Yarn en un projecte JavaScript específic
Amb la CLI global a punt, el següent pas és "fixar" una versió particular de Yarn a cada projecte. Això és exactament el que garanteix la coherència entre les màquines dels vostres companys d'equip i les vostres pipelines de CI/CD: tothom executa el mateix binari Yarn i, per tant, comparteix el mateix comportament.
Comença navegant fins al directori del teu projecte (o crea'n un de nou si estàs iniciant una aplicació nova). Per exemple:
mkdir my-project
cd my-project
Dins d'aquesta carpeta, feu servir l'especial yarn set version comanda per seleccionar una versió moderna de Berry. Una opció típica és fer un seguiment de la línia de "baies" desenvolupada activament:
yarn set version berry
Darrere de les càmeres, Yarn resol "berry" amb l'últim binari de Berry, el descarrega i l'emmagatzema dins d'un .yarn/releases directori dins del vostre projecte. Alhora, crea o actualitza un .yarnrc.yml fitxer a l'arrel del projecte per indicar al llançador global que delegui a aquest binari local.
Si ara corres yarn --version de nou des de dins del projecte, la sortida canviarà a la versió fixada al projecte. Potser veuràs alguna cosa com 4.5.0 o una altra versió 3.x/4.x, cosa que indica que ja no feu servir la CLI Classic global, sinó la local de Berry allotjada al vostre repositori.
A partir d'aquest moment, cada ordre de Yarn executada en aquest directori (o els seus subdirectoris) utilitzarà la versió de Yarn específica del projecte. Això permet a un equip migrar gradualment diferents projectes a versions més noves de Yarn al seu propi ritme, tot mantenint un únic llançador global instal·lat a les màquines dels desenvolupadors.
Comandes de fil bàsic per al desenvolupament diari
Un cop Yarn estigui instal·lat i connectat al vostre projecte, només necessiteu un petit subconjunt d'ordres per cobrir la majoria de les tasques diàries. La CLI és extensa, però un grapat de subordres ja us porten lluny pel que fa a la gestió de dependències i scripts.
Sempre que us sentiu encallats o vulgueu explorar més opcions, cada comanda accepta un indicador d'ajuda. running:
yarn --help
imprimeix ajuda general, mentre afegeix --help després d'una subordre específica us dóna consells d'ús contextual. Per exemple, yarn install --help explica tots els indicadors disponibles per al procés d'instal·lació de dependències.
Per arrencar un projecte nou, podeu demanar a Yarn que generi els fitxers de configuració bàsics. Dins d'una carpeta buida, simplement executa:
yarn init
Aquesta ordre us guia a través d'unes quantes indicacions i escriu un package.json a més d'un yarn.lock arxiu. El primer declara les metadades, els scripts i les dependències del vostre projecte, mentre que el segon actua com a registre canònic de les versions exactes que Yarn va resoldre en el moment de la instal·lació.
Quan s'uneix a un repositori existent que ja utilitza Yarn, el punt de partida típic és instal·lar totes les dependències. Des de l'arrel del projecte, només cal executar:
yarn install
El fil llegeix aleshores package.json i yarn.lock, descarrega el que falta i configura l'arbre de dependències. Gràcies a la memòria cau, les instal·lacions posteriors, fins i tot en CI, seran molt més ràpides que l'execució inicial.
Afegir noves dependències és igualment senzill amb el add subcomanda. Per instal·lar, per exemple, Express, hauríeu d'utilitzar:
yarn add express
Aquesta única ordre obté el paquet, les actualitzacions package.json i refresca yarn.lock. No cal editar manualment els fitxers JSON; Yarn manté sincronitzats els rangs declarats i les versions bloquejades.
Comprovació ràpida de la integritat: servidor Express petit amb fil
Si voleu estar completament segurs que Yarn funciona com es preveu, podeu escriure una petita prova de fum amb Express. Suposant que esteu dins d'un projecte i ja heu executat yarn add express, crea un fitxer anomenat index.js amb el següent servidor mínim:
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"));
En comptes de cridar Node directament, podeu executar aquest script a través de Yarn, cosa que pot ser convenient en entorns PnP. Ús:
yarn node index.js
Obriu un altre terminal i verifiqueu que el servidor respon correctament. Un simple:
curl http://localhost:3000
hauria de retornar el missatge "El fil està funcionant!". Si això passa, saps que Yarn ha resolt la dependència, ha connectat la resolució del mòdul i ha executat l'script sense problemes.
Gestió de dependències, scripts i la memòria cau Yarn
Més enllà de la instal·lació i les addicions bàsiques, Yarn exposa diverses utilitats per mantenir i evolucionar el vostre gràfic de dependències de manera neta. Aquestes ordres eviten l'edició manual i mantenen package.json i yarn.lock coherent en tot moment.
Per eliminar una dependència que ja no necessiteu, feu servir l'ordre remove subcomanda. Per exemple:
yarn remove package-name
Yarn desinstal·larà el paquet i el traurà de package.jsoni actualitzeu el fitxer de bloqueig en conseqüència. Això evita que els mòduls obsolets o no utilitzats persisteixin a l'arbre de dependències.
L'actualització de dependències es pot fer de manera massiva o per a un paquet específic. Sense arguments,
yarn upgrade
resol les versions més noves compatibles segons els rangs declarats, mentre que:
yarn upgrade package-name
té com a objectiu una única dependència. En ambdós casos, Yarn reescriu yarn.lock per reflectir el gràfic de dependències actualitzat.
Quan el vostre projecte defineix scripts a package.json, Fils run La subcomanda és la manera d'executar-les. Un guió com ara:
"scripts": {
"start": "node index.js"
}
es pot llançar amb:
yarn run start
i en molts casos més curt yarn start L'àlies també funciona. Això proporciona una capa d'abstracció neta sobre Node o altres eines, independentment de l'estratègia d'enllaç de mòduls subjacent.
Yarn manté una memòria cau local o global de tots els paquets descarregats anteriorment per accelerar les instal·lacions i proporcionar un comportament fora de línia. De vegades, sobretot després d'experiments o canvis de versió múltiples, aquesta memòria cau pot esdevenir sorollosa o corrompuda. Sempre que sospiteu problemes de memòria cau, podeu restablir-la amb:
yarn cache clean
Si teniu curiositat per saber on Yarn emmagatzema aquests artefactes emmagatzemats a la memòria cau, yarn cache dir imprimeix la ubicació. Això és particularment útil quan necessiteu afegir a la llista blanca la carpeta de memòria cau d'un antivirus a Windows per evitar instal·lacions lentes causades per l'escaneig agressiu de cada fitxer descarregat.
Configuració de Yarn amb .yarnrc.yml
Modern Yarn centralitza la configuració del projecte a .yarnrc.yml arxiu. Aquest document YAML controla com s'enllacen les dependències, on viuen les memòries cau, com d'estricte ha de ser el PnP, les URL del registre, la telemetria i més.
Una configuració típica podria ser així:
nodeLinker: pnp
pnpMode: strict
compressionLevel: mixed
enableGlobalCache: true
enableTelemetry: false
L' nodeLinker La configuració és especialment important perquè defineix com es resolen els mòduls. Les opcions vàlides inclouen pnp (Plug'n'Play sense node_modules carpeta), node-modules (disseny clàssic) i, de vegades, un enllaçador d'estil pnpm. Si teniu problemes de compatibilitat amb eines que codifiquen node_modules suposicions, canviant a node-modules sovint les resol.
compressionLevel indica a Yarn amb quina aggressivitat ha de comprimir els paquets emmagatzemats a la memòria cau. Un valor de 0 desactiva completament la compressió per a una velocitat màxima, 1 força la compressió completa per a un ús mínim del disc, i mixed equilibra els dos mons, cosa que tendeix a ser la opció per defecte més sensata per a la majoria d'equips.
Habilitant enableGlobalCache fa que Yarn reutilitzi un directori de memòria cau compartit en diversos projectes. D'aquesta manera, si diversos repositoris depenen de les mateixes biblioteques, Yarn evita descarregar-los diverses vegades, estalviant tant ample de banda de xarxa com espai en disc.
Finalment, enableTelemetry controla si Yarn envia informació d'ús anònima als mantenidors. Moltes empreses prefereixen desactivar-ho per motius de privadesa i compliment normatiu, mentre que d'altres ho deixen activat per ajudar a guiar la ruta del projecte; de qualsevol manera, només és un indicador en aquest fitxer de configuració.
Integració amb Git: què cal fer commit i què cal ignorar
Com que Yarn emmagatzema part de la seva maquinària dins d'un .yarn directori, és important ser deliberat sobre què s'inclou en el control de versions. Alguns d'aquests fitxers s'haurien de controlar absolutament, mentre que d'altres són artefactes de memòria cau o de compilació que només inflarien el repositori.
Un mínim .gitignore L'estratègia utilitzada en molts projectes de Berry és la següent:
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
Aquest patró ignora tot el .yarn carpeta però després inclou a la llista blanca els subdirectoris que cal confirmar. L' releases El directori, per exemple, conté el binari Yarn específic del projecte; sense ell, altres desenvolupadors podrien no obtenir exactament la mateixa versió de la CLI en clonar el repositori.
Altres camins de la llista blanca com ara .yarn/plugins or .yarn/sdks mantenir complements personalitzats i integracions d'editors. Mantenir-los sota control de versions garanteix que tots els membres de l'equip comparteixin el mateix conjunt de complements i suport d'eines d'idiomes.
L' .pnp.* Les entrades són els fitxers de manifest Plug'n'Play que descriuen l'arbre de dependències si esteu utilitzant el mode PnP. Commit-los és essencial per a fluxos de treball reproduïbles i, de vegades, fins i tot sense instal·lació, on la CI o els nous clons poden executar el projecte immediatament sense haver de regenerar els manifests.
A més d'això, recorda que yarn.lock és un ciutadà de primera classe al vostre repositori. Sempre s'ha de confirmar i actualitzar juntament amb els canvis de dependències, altrament tots els beneficis del determinisme de Yarn desapareixeran.
Fil vs npm: Quan el fil realment brilla
Yarn i npm resolen el mateix problema central: la gestió de les dependències de Node.js, però Yarn es diferencia en diversos escenaris pràctics. La diferència més visible sovint és el rendiment: gràcies a instal·lacions paral·leles i un emmagatzematge en memòria cau més intel·ligent, Yarn sovint completa les instal·lacions significativament més ràpidament en projectes grans.
L'ús del disc és un altre punt fort, sobretot si adopteu el PnP. En eliminar node_modules, un projecte típic pot consumir molt menys espai en disc, i les eines que s'integren bé amb PnP poden beneficiar-se de resolucions de mòduls més ràpides, ja que Node ja no ha de recórrer arbres de directoris profunds i repetitius.
Pel que fa al comportament del fitxer de bloqueig, Yarn's yarn.lock és àmpliament apreciat per ser compacte i altament determinista. Registra explícitament les decisions de resolució, cosa que facilita la comprensió del motiu pel qual s'ha triat una versió en particular i la depuració de conflictes de versions.
Els monorepos són una àrea on Yarn ha estat durant molt de temps al capdavant gràcies a la seva característica d'espais de treball. Amb els espais de treball, diversos paquets d'un únic repositori comparteixen un fitxer de bloqueig, les dependències s'eleven de manera eficient i els paquets locals s'enllacen automàticament sense necessitat de configuració prèvia.
Els casos d'ús del món real on Yarn destaca clarament sovint inclouen configuracions complexes de CI/CD, grans bases de codi compartides o entorns darrere de proxies corporatius i certificats personalitzats. Per exemple, córrer yarn install --immutable dins de CI garanteix que la instal·lació fallarà si yarn.lock el fitxer no coincideix package.json, que detecta els estats de dependència inconsistents abans que arribin a producció.
D'altra banda, npm continua sent una opció perfectament vàlida per a projectes més petits o equips profundament investits en l'ecosistema npm. Si només manteniu un grapat de serveis amb arbres de dependències modestos i no depeneu gaire de monorepos o PnP, la simplicitat de mantenir-se a npm pot superar les funcions avançades de Yarn.
Opcions d'instal·lació específiques del sistema operatiu
Tot i que la instal·lació de la CLI global basada en npm funciona gairebé a tot arreu, Yarn també ofereix distribucions i scripts específics del sistema operatiu. Això és útil si preferiu gestors de paquets natius o si opereu en sistemes sense una configuració npm convenient.
A macOS, una opció molt popular és instal·lar Yarn a través de Homebrew. Un flux típic, suposant que ja teniu Node (possiblement també via Homebrew), és:
brew install yarn
Si feu servir nvm o un altre gestor de versions de Node, assegureu-vos que el directori shims aparegui abans de qualsevol Node Homebrew al vostre PATH. Altrament, és possible que acabeu utilitzant una versió de Node diferent de l'esperada en executar scripts de Yarn.
Una altra opció a macOS és MacPorts, que pot instal·lar tant Node.js com Yarn si encara no hi són. Per a un control encara més gran, Yarn també publica un script d'instal·lació de shell que funciona en macOS i Unix genèric; introdueix aquest script a les descàrregues de la shell i configura Yarn d'una sola vegada.
A Windows, les rutes recomanades són l'instal·lador de MSI, Chocolatey o Scoop. L'instal·lador de MSI us guia a través d'un assistent gràfic i normalment s'assegura que Node.js estigui present com a part del procés. Scoop, en canvi, us permet instal·lar Yarn des de la línia d'ordres, suggerint opcionalment Node si no hi és.
Quan instal·leu Yarn a Windows, és una molt bona idea incloure a la llista blanca tant la carpeta del projecte com el directori de memòria cau de Yarn, normalment a %LocalAppData%\Yarn, al teu antivirus. Altrament, es pot escanejar cada descàrrega i escriptura de fitxers, cosa que alentirà dràsticament les instal·lacions.
Les distribucions de Linux sovint ofereixen múltiples opcions: paquets oficials del sistema, repositoris propis de Yarn o instal·lacions manuals de fitxers tarball. A Debian i Ubuntu, per exemple, podeu afegir el repositori APT de Yarn, configurar opcionalment NodeSource per obtenir un Node.js recent i després instal·lar Yarn a través de apt.
En distribucions com CentOS, Fedora, RHEL o Arch, Yarn ofereix fitxers tar signats per GPG que podeu descarregar i descomprimir a qualsevol lloc del disc. En aquestes configuracions manuals, normalment cal verificar la signatura del tarball amb GPG i després afegir el directori Yarn descomprimit al PATH perquè yarn L'ordre està disponible a tot el sistema.
Configuració de PATH a Unix, Linux i Windows
Una font habitual de confusió durant la instal·lació és la configuració del PATH: potser Yarn està instal·lat, però l'intèrpret d'ordres no pot trobar el binari. En aquest cas, heu d'actualitzar l'entorn perquè el directori Yarn s'inclogui a la variable PATH.
Per a instal·lacions manuals de fitxers tarball en sistemes tipus Unix, el patró habitual és exportar una ruta que apunti a Yarn's bin directori. Per exemple:
export PATH="$PATH:/opt/yarn-[version]/bin"
Col·loqueu aquesta línia al fitxer de perfil de l'intèrpret d'ordres (com ara .bashrc, .bash_profile, .zshrc, o similar), aleshores obriu una nova sessió de terminal o descarregueu el fitxer perquè el canvi tingui efecte. Un cop fet, yarn --version hauria de funcionar des de qualsevol directori.
Si t'inclines yarn global ordres, Yarn també ha d'assegurar-se que la seva carpeta bin global estigui al PATH. Una manera ràpida d'aconseguir-ho és ampliar el teu perfil amb:
export PATH="$PATH:`yarn global bin`"
Els usuaris de closques de peix confien en fish_user_paths i pot executar:
set -U fish_user_paths (yarn global bin) $fish_user_paths
A Windows, també és possible que hàgiu d'afegir manualment el directori binari Yarn a la variable d'entorn PATH. Un exemple senzill seria:
set PATH=%PATH%;C:\.yarn\bin
A la pràctica, els instal·ladors gràfics o els gestors de paquets de Windows sovint gestionen la configuració del PATH, però és útil saber com ajustar-la manualment quan alguna cosa no funciona com s'esperava.
Problemes típics d'instal·lació i com solucionar-los
Fins i tot amb una documentació clara, certs problemes d'instal·lació apareixen una i altra vegada quan els equips adopten Yarn. Afortunadament, la majoria tenen solucions ben enteses i repetibles.
Un problema recurrent són els errors relacionats amb els permisos en instal·lar la CLI global mitjançant npm. Si el prefix npm apunta a un directori propietat del sistema, una ordre com ara:
sudo npm install -g yarn
pot funcionar però no és ideal a llarg termini. Un millor patró és configurar npm per utilitzar un directori global propietat de l'usuari. Podeu comprovar el vostre prefix actual amb:
npm config get prefix
Si apunta a alguna cosa per sota /usr, crea el teu propi directori i reconfigura npm. Per exemple:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
Després de tornar a carregar la configuració del shell, hauríeu de poder instal·lar Yarn globalment sense sudo, evitant molts maldecaps de permisos.
Una altra font freqüent de confusió són les discrepàncies de versió entre el Yarn global i el Yarn del projecte. Recordeu que això és intencionat: la CLI global 1.x és només un llançador i, quan s'utilitza dins d'un projecte configurat amb Berry, delega a qualsevol versió que hi resideixi. .yarn/releases.
Si sembla que falten paquets tot i que Yarn ha informat d'una instal·lació correcta, és possible que us trobeu amb una eina que encara no entén el PnP. Alguns editors, linters o eines de compilació assumeixen que node_modules directori i falla quan no existeix. Les solucions habituals inclouen habilitar els SDK de Yarn per a editors, utilitzar eines compatibles de la matriu de suport de Yarn o canviar temporalment l'enllaçador a node-modules per .yarnrc.yml.
Els conflictes de fitxers de bloqueig són inevitables en equips actius on diverses branques afegeixen o canvien dependències en paral·lel. Quan? yarn.lock conflictes durant una fusió, una estratègia eficaç és triar una branca com a línia de base, resoldre els conflictes textuals manualment a favor d'aquesta línia de base sempre que sigui possible i després executar yarn install per regenerar un fitxer de bloqueig net que torneu a enviar com a nova font de veritat.
Els problemes relacionats amb la memòria cau se solen resoldre amb un simple yarn cache clean seguit d'un fresc yarn install. Si Yarn es comporta de manera estranya, els paquets semblen obsolets o apareixen errors de resolució estranys, netejar la memòria cau i reinstal·lar-la sovint retorna el sistema a un estat normal sense més investigació.
Comprovacions posteriors a la instal·lació i ajust continu del rendiment
Un cop instal·lat Yarn i executant ordres correctament, val la pena executar unes quantes comprovacions ràpides per assegurar-se que tot està connectat correctament per al vostre projecte. El primer i més senzill és confirmar la versió:
yarn --version
Després d'això, en qualsevol projecte que ja tingui un package.json, executant yarn install sense errors és un indicador fort que el vostre entorn, l'accés al registre i la versió de Node són compatibles. Si les vostres dependències són importants, és recomanable que tingueu en compte el temps d'instal·lació; en execucions posteriors, l'emmagatzematge en memòria cau i la concurrència de Yarn haurien de reduir considerablement aquest temps.
Yarn també ofereix ordres com ara yarn outdated per veure quins paquets tenen versions més noves disponibles, i yarn list --depth=0 per imprimir totes les dependències de nivell superior que estan realment instal·lades. Aquestes eines us ajuden a fer un seguiment de la deriva de dependències i a decidir quan programar les actualitzacions.
Pel que fa al rendiment, hi ha diverses palanques que podeu utilitzar després de la instal·lació. Configuracions com networkConcurrency, les carpetes de memòria cau personalitzades o la desactivació de barres de progrés detallades a la CI poden reduir segons o fins i tot minuts a les instal·lacions grans. Per exemple, augmentar la concurrència amb:
yarn config set network-concurrency 8
permet a Yarn enviar més sol·licituds de xarxa en paral·lel, sovint accelerant les descàrregues en connexions ràpides.
Finalment, per a configuracions de monorepòsits o multientorn molt grans, la combinació de Yarn amb una infraestructura escalable (com ara pipelines de CI basats en contenidors o plataformes de compilació al núvol) permet explotar al màxim el seu disseny determinista i compatible amb la memòria cau. Perquè cada instal·lació està guiada per yarn.lock i PnP o node_modules Les metadades, les memòries cau compartides entre nodes de CI o reutilitzades entre compilacions poden reduir dràsticament els temps d'instal·lació.
En definitiva, prendre's el temps per entendre com instal·lar Yarn correctament, fixar-lo per projecte, ajustar el PATH i la configuració i aprofitar les seves funcions de memòria cau i espai de treball val la pena ràpidament. Acabes amb instal·lacions més ràpides, compilacions més predictibles, una millor ergonomia de monorepo i un flux de treball de gestió de dependències més fàcil de reproduir entre companys d'equip, sistemes de CI/CD i entorns de producció.