Modern JavaScript Projelerinde Yarn Nasıl Kurulur ve Kullanılır

Son Güncelleme: 04/24/2026
  • Yarn, tutarlı davranış için iki seviyeli bir model kullanır: bir global CLI ve bir projeye özel sabitlenmiş sürüm.
  • Yarn.lock ve agresif önbellekleme ile deterministik kurulumlar, hızlı ve tekrarlanabilir bağımlılık yönetimi sağlar.
  • Modern Yarn Berry, esnek bağlantı, önbellekleme ve editör/CI entegrasyonu için PnP, çalışma alanları ve .yarnrc.yml özelliklerini ekler.
  • Doğru PATH yapılandırması, kilit dosyası yönetimi ve önbellek yönetimi, sık karşılaşılan kurulum sorunlarından kaçınmak için çok önemlidir.

Yarn JavaScript'i yükleyin.

JavaScript projeleriniz için Yarn'ı kurmaya çalışıyorsanız ve birçok seçenek arasında kaybolmuş hissediyorsanız, yalnız değilsiniz. Yarn son yıllarda çok gelişti, npm ile birlikte varlığını sürdürüyor ve işletim sistemine ve hatta kullandığınız proje stiline (monorepo, PnP, klasik node_modules vb.) bağlı olarak farklı sürümleri ve kurulum akışları mevcut.

İyi haber şu ki, Yarn'ın nasıl kurulduğunu ve iki seviyeli modelinin (küresel CLI + projeye özgü Yarn) nasıl çalıştığını anladığınızda her şey anlam kazanmaya başlıyor. Bu kılavuzda, Yarn'ı en yaygın sistemlere nasıl kuracağınızı, gerçek bir JavaScript projesine nasıl entegre edeceğinizi, npm'den farkını ve ilk kez kullanmaya başladığınızda genellikle ortaya çıkan tipik sorunları nasıl gidereceğinizi ayrıntılı olarak ele alacağız.

Yarn Nedir ve JavaScript Projeleri İçin Neden Hala Önemlidir?

Yarn, hız, güvenlik ve kesin kurulumlar olmak üzere üç büyük hedef göz önünde bulundurularak tasarlanmış bir Node.js paket yöneticisidir. Yarn, npm'nin performans ve güvenilirlik sorunları yaşadığı bir dönemde ona alternatif olarak doğdu ve npm o zamandan beri çok gelişmiş olsa da, özellikle React ve modern ön uç geliştirme platformlarında son derece popülerliğini koruyor.

Yarn'ın en önemli güçlü yönlerinden biri, deterministik kurulum sürecine dayalı olmasıdır. yarn.lock dosyası. Bu dosya, tüm doğrudan ve dolaylı bağımlılıkların tam sürümlerini sabitleyerek, farklı makinelerde veya CI sunucularında kurulumun her zaman aynı bağımlılık ağacını vermesini sağlar ve klasik "sadece benim dizüstü bilgisayarımda çalışıyor" sorununu ortadan kaldırır.

Bir diğer ayırt edici özelliği ise, Yarn'ın daha önce indirdiği paketleri yeniden kullanmasına olanak tanıyan agresif önbellekleme davranışıdır. Bu sayede, tekrarlanan kurulumlar önemli ölçüde hızlanır ve gerekli tüm paketler önceden önbelleğe alınmışsa Yarn çevrimdışı modda bile çalışabilir.

Modern Yarn (2.x, 3.x ve 4.x sürümleri için genellikle "Berry" olarak adlandırılır) Tak ve Çalıştır (PnP) ve çalışma alanları gibi ek gelişmiş özellikler sunar. PnP, geleneksel yöntemleri tamamen ortadan kaldırabilir. node_modules Klasörleri, Node.js'ye her paketin tam olarak nerede bulunduğunu söyleyen manifest dosyalarıyla değiştirerek, çok fazla disk alanı tasarrufu sağlar ve bazı işlemleri hızlandırır. Öte yandan, çalışma alanları, paylaşılan bir kilit dosyası ve merkezi bağımlılık yönetimi ile tek bir depoda birden fazla paketi birbirine bağlayan monorepolar için mükemmeldir.

Güvenlik açısından bakıldığında, Yarn her paketin çalıştırılmadan önce sağlama toplamlarını doğrular. Bu bütünlük doğrulaması, özellikle kurumsal veya hassas ortamlarda faydalı olan, bozulmuş veya üzerinde oynanmış dosyalara karşı ek bir koruma katmanı sağlar.

Yarn Classic ve Yarn Berry (Modern İplik) Arasındaki Farkı Anlamak

Klasik ve Berry iplik

Kurulumdan bahsetmeden önce, Yarn'ın iki büyük ailesi olduğunu anlamak çok önemlidir: Klasik (1.x) ve Berry (2.x/3.x/4.x). Yarn Classic, kendi tarihsel deposunda yer alır ve yalnızca güvenlik yamaları alır; tüm aktif geliştirme ise daha yeni olan ve barındırılan Berry serisine odaklanmıştır. yarnpkg/berry Repo.

Global kurulumu yapan çoğu kişi hala Yarn Classic (yaklaşık 1.22) sürümünü elde ediyor. yarn npm ile komut satırı arayüzü (CLI). Günümüzde bu global CLI çoğunlukla bir başlatıcı görevi görüyor: Berry ile yapılandırılmış bir proje içinde, global komut yürütmeyi yerel projeye özgü Yarn sürümüne devrediyor, böylece global araçlara dokunmadan proje araç zincirini yükseltebiliyorsunuz.

Yarn Berry, özellikle Tak ve Çalıştır özelliği ve güçlü bir eklenti sistemiyle, mimaride önemli değişiklikler getiriyor. Varsayılan olarak, Berry PnP'yi tercih eder. node_modulesSıfır kurulumlu iş akışlarını destekler (bağımlılıklar depoya kaydedilir) ve ince ayarlı yapılandırmaya olanak tanır. .yarnrc.ymlModüllerin nasıl birbirine bağlandığı, önbelleklerin nasıl yönetildiği veya kayıt defterlerinin ve proxy'lerin nasıl tanımlandığı da dahil olmak üzere.

Yarn geliştiricileri, mümkün olan her durumda 1.x sürümünden en son Berry sürümüne geçmeyi şiddetle tavsiye etmektedir. Modern sürümler daha uzun süredir aktif olarak desteklenmekte, Klasik sürümde mevcut olan birçok sorunu gidermekte ve yapılandırma esnekliği sunmaktadır. nodeLinker Klasik sürümü kullanmaya devam edebilmeniz için ayarlar node_modules PnP'nin uygun olmadığı durumlarda düzen veya pnpm tarzı sembolik bağlantılar.

Ekosisteminiz veya araçlarınız henüz Tak ve Çalıştır (PnP) için hazır değilse, çaresiz değilsiniz. Sadece ayarlayarak nodeLinker: node-modules in .yarnrc.ymlBerry, deterministik kilit dosyasını, önbellekleme davranışını ve geliştirilmiş CLI deneyimini korurken, geleneksel npm kurulumlarına daha yakın bir şekilde davranır.

Sistem Gereksinimleri ve Küresel İplik Kurulum Stratejisi

İşletim sisteminiz ne olursa olsun, Yarn için asıl zorunlu gereksinim Node.js'nin kurulu olmasıdır. Yarn, Node tabanlı bir komut satırı aracıdır ve çalışması için Node'a bağımlıdır; bu nedenle öncelikle Node'un kullanılabilir olup olmadığını hızlı bir şekilde doğrulamanız gerekir. node -v Terminalinizde bir komut açın. "Komut bulunamadı" hatası yerine bir sürüm numarası görürseniz, işlem tamamlanmıştır.

Node.js eksikse veya güncel değilse, platformunuz için önerilen yöntemi kullanarak yükleyin veya güncelleyin. Linux'ta dağıtım paketlerini veya NodeSource depolarını, macOS'ta Homebrew, MacPorts veya nvm'yi, Windows'ta ise resmi yükleyiciyi veya Chocolatey veya Scoop gibi bir paket yöneticisini kullanabilirsiniz. Birçok Yarn iş akışı en az Node 14.18 sürümünü varsayar ve Berry için Node 16 veya 18 LTS genellikle en uygun sürümdür.

Yarn'ın yazarları iki aşamalı bir kurulum modeli önermektedir. Öncelikle global bir kurulum yapın. yarn Komut satırı arayüzünü (çoğunlukla npm aracılığıyla) bir kez çalıştırın ve ardından her proje içinde, bu genel komutu kullanarak, doğrudan depoda yer alan projeye özgü bir Yarn sürümünü yapılandırın. Bu, tüm katkıda bulunanların ve CI işlerinin, proje tarafından tanımlanan aynı Yarn sürümünü çalıştırmasını garanti eder.

npm aracılığıyla global Yarn CLI'yı kurmak oldukça kolaydır. npm, Node.js ile birlikte varsayılan olarak geldiği için şu komutu çalıştırabilirsiniz:

sudo npm install -g yarn

Kurulum tamamlandıktan sonra, global CLI'ya erişilebildiğini doğrulayın. Koşmak:

yarn --version

Eğer buna benzer bir şey görürseniz 1.22.xBu, küresel Klasik başlatıcının düzgün çalıştığı anlamına geliyor. Bundan böyle, Berry kullanan bir projeye girdiğinizde, bu genel komut, depoda saklanan yerel olarak yapılandırılmış Yarn sürümüne kontrolü şeffaf bir şekilde devredecektir.

Belirli bir JavaScript projesine Yarn kurulumu

Küresel CLI hazır olduğuna göre, bir sonraki adım her projeye belirli bir Yarn sürümünü "sabitlemektir". Bu, ekip arkadaşlarınızın makinelerinde ve CI/CD işlem hatlarınızda tutarlılığı sağlayan şeydir: herkes aynı Yarn ikili dosyasını çalıştırır ve bu nedenle aynı davranışı paylaşır.

Öncelikle projenizin dizinine gidin (veya sıfırdan bir uygulama başlatıyorsanız yeni bir dizin oluşturun). Örneğin:

mkdir my-project
cd my-project

O klasörün içinde, özel olanı kullanın. yarn set version Modern bir Berry sürümünü seçmek için kullanılan komut. Tipik bir seçim, aktif olarak geliştirilen "berry" hattını takip etmektir:

yarn set version berry

Arka planda, Yarn "berry"yi en son Berry ikili dosyasına dönüştürür, indirir ve bir dosyanın içine depolar. .yarn/releases Projenizdeki dizin. Aynı zamanda bir şeyi oluşturur veya günceller. .yarnrc.yml Proje kök dizinindeki dosyayı değiştirerek global başlatıcıya yerel ikili dosyayı kullanmasını söyleyin.

şimdi koşarsan yarn --version Yine proje içinden, çıktı projeye sabitlenmiş sürüme değişecektir. Şuna benzer bir şey görebilirsiniz. 4.5.0 veya başka bir 3.x/4.x sürümü, artık global Classic CLI'yı değil, deponuzda barındırılan yerel Berry sürümünü kullandığınızı gösterir.

Bu andan itibaren, o dizinde (veya alt dizinlerinde) yürütülen her Yarn komutu, projeye özgü Yarn sürümünü kullanacaktır. Bu, bir ekibin farklı projeleri kendi hızlarında kademeli olarak daha yeni Yarn sürümlerine geçirmesine olanak tanırken, geliştirici makinelerinde tek bir küresel başlatıcı kurulu kalmasını sağlar.

Günlük Geliştirme İçin Temel Yarn Komutları

Yarn'ı kurup projenize entegre ettikten sonra, günlük görevlerin çoğunu halletmek için yalnızca az sayıda komuta ihtiyacınız olacaktır. Komut satırı arayüzü kapsamlıdır, ancak birkaç alt komut bile bağımlılıkları ve komut dosyalarını yönetme konusunda sizi oldukça ileriye götürür.

Ne zaman takılıp kalırsanız veya daha fazla seçenek keşfetmek isterseniz, her komut bir yardım bayrağı kabul eder. Koşu:

yarn --help

Genel yardım bilgilerini yazdırırken, aşağıdaki bilgileri de ekler. --help Belirli bir alt komutun ardından size bağlam odaklı kullanım ipuçları verilir. Örneğin, yarn install --help Bağımlılık yükleme işlemi için mevcut tüm bayrakları açıklar.

Yepyeni bir projeyi başlatmak için, Yarn'dan temel yapılandırma dosyalarını oluşturmasını isteyebilirsiniz. Boş bir klasörün içinde şu komutu çalıştırın:

yarn init

Bu komut sizi birkaç soru üzerinden yönlendirir ve bir çıktı yazar. package.json artı yarn.lock dosyası. İlki projenizin meta verilerini, komut dosyalarını ve bağımlılıklarını tanımlarken, ikincisi Yarn'ın kurulum sırasında çözümlediği kesin sürümlerin standart kaydı görevi görür.

Yarn kullanan mevcut bir depoya katılırken, tipik başlangıç ​​noktası tüm bağımlılıkları yüklemektir. Proje kök dizininden şu komutu çalıştırmanız yeterli:

yarn install

İplik daha sonra okuyor package.json hem de yarn.lockEksik olan her şeyi indirir ve bağımlılık ağacını kurar. Önbellekleme sayesinde, CI ortamında bile sonraki kurulumlar ilk çalıştırmaya göre çok daha hızlı olacaktır.

Yeni bağımlılıklar eklemek de aynı derecede kolaydır. add alt komut. Örneğin, Express'i yüklemek için şunu kullanırsınız:

yarn add express

Bu tek komut paketi indirir ve günceller. package.json ve tazeler yarn.lock. JSON dosyalarını manuel olarak düzenlemenize gerek yok; Yarn, tanımlanmış aralıkları ve kilitli sürümleri sizin için senkronize halde tutar.

Hızlı Bir Sağlamlık Kontrolü: Yarn ile Küçük Bir Express Sunucusu

Yarn'ın amaçlandığı gibi çalıştığından tamamen emin olmak istiyorsanız, Express kullanarak küçük bir duman testi yazabilirsiniz. Bir projenin içinde olduğunuzu ve daha önce çalıştırdığınızı varsayalım. yarn add express, adında bir dosya oluşturun index.js Aşağıdaki minimum sunucu ile:

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'u doğrudan çağırmak yerine, bu betiği Yarn üzerinden çalıştırabilirsiniz; bu, PnP ortamlarında kullanışlı olabilir. kullanın:

yarn node index.js

Başka bir terminal açın ve sunucunun doğru şekilde yanıt verdiğini doğrulayın. Basit bir cevap:

curl http://localhost:3000

“İplik çalışıyor!” mesajını döndürmelidir. Bu gerçekleşirse, Yarn'ın bağımlılığı çözdüğünü, modül çözümlemesini sağladığını ve betiği sorunsuz bir şekilde çalıştırdığını anlarsınız.

Bağımlılıkları, Komut Dosyalarını ve Yarn Önbelleğini Yönetme

Kurulum ve temel eklemelerin ötesinde, Yarn, bağımlılık grafiğinizi temiz bir şekilde sürdürmenize ve geliştirmenize olanak tanıyan çeşitli yardımcı programlar sunar. Bu komutlar manuel düzenlemeyi önler ve package.json hem de yarn.lock Her zaman tutarlı.

Artık ihtiyacınız olmayan bir bağımlılığı kaldırmak için şunu kullanın: remove alt komut. Örneğin:

yarn remove package-name

Yarn paketi kaldıracak ve onu bırakacak. package.jsonve kilit dosyasını buna göre güncelleyin. Bu, eski veya kullanılmayan modüllerin bağımlılık ağacınızda kalmasını önler.

Bağımlılıkların güncellenmesi toplu olarak veya belirli bir paket için yapılabilir. Argümanlar olmadan,

yarn upgrade

Belirttiğiniz aralıklara göre uyumlu daha yeni sürümleri çözümlüyor, ancak:

yarn upgrade package-name

tek bir bağımlılığı hedefliyor. Her iki durumda da Yarn yeniden yazma işlemi gerçekleştirir. yarn.lock Güncellenmiş bağımlılık grafiğini yansıtmak için.

Projeniz komut dosyalarını tanımladığında package.jsonİpliğin run Alt komut, bunların çalıştırılma yöntemidir. Şöyle bir senaryo:

"scripts": {
  "start": "node index.js"
}

Şu komutlarla başlatılabilir:

yarn run start

ve birçok durumda daha kısa olanı yarn start Takma ad da işe yarar. Bu, altta yatan modül bağlantı stratejiniz ne olursa olsun, Node veya diğer araçların üzerinde temiz bir soyutlama katmanı sağlar.

Yarn, kurulumları hızlandırmak ve çevrimdışı çalışma özelliği sağlamak için daha önce indirilen tüm paketlerin yerel veya genel bir önbelleğini tutar. Bazen, özellikle denemelerden veya birden fazla sürüm değişikliğinden sonra, önbellek gürültülü hale gelebilir veya bozulabilir. Önbellek sorunlarından şüphelendiğinizde, aşağıdaki komutla sıfırlayabilirsiniz:

yarn cache clean

Yarn'ın önbelleğe alınmış bu dosyaları nerede sakladığını merak ediyorsanız, yarn cache dir Konumu yazdırır. Bu özellik, özellikle Windows'ta antivirüs programında önbellek klasörünü beyaz listeye eklemeniz gerektiğinde, indirilen her dosyanın agresif bir şekilde taranmasından kaynaklanan yavaş kurulumları önlemek için oldukça kullanışlıdır.

.yarnrc.yml ile Yarn'ı Yapılandırma

Modern Yarn, proje yapılandırmasını merkezileştirir. .yarnrc.yml dosyası. Bu YAML belgesi, bağımlılıkların nasıl bağlanacağını, önbelleklerin nerede bulunacağını, PnP'nin ne kadar katı olması gerektiğini, kayıt defteri URL'lerini, telemetriyi ve daha fazlasını kontrol eder.

Tipik bir yapılandırma şu şekilde olabilir:

nodeLinker: pnp
pnpMode: strict
compressionLevel: mixed
enableGlobalCache: true
enableTelemetry: false

MKS nodeLinker Ayarlar özellikle önemlidir çünkü modüllerin nasıl çözümleneceğini tanımlar. Geçerli seçenekler şunlardır: pnp (Tak ve Çalıştır, herhangi bir kısıtlama olmaksızın) node_modules dosya), node-modules (klasik düzen) ve bazen de pnpm tarzı bir bağlayıcı. Sabit kod kullanan araçlarla uyumluluk sorunlarıyla karşılaşırsanız node_modules varsayımlar, geçiş yapmak node-modules Genellikle sorunları çözer.

compressionLevel Yarn'a önbelleğe alınmış paketleri ne kadar agresif bir şekilde sıkıştırması gerektiğini söyler. Değeri 0 Maksimum hız için sıkıştırmayı tamamen devre dışı bırakır. 1 Minimum disk kullanımı için tam sıkıştırmayı zorunlu kılar ve mixed Bu, her iki dünyayı da dengeleyen bir yaklaşımdır ve çoğu takım için mantıklı bir varsayılan ayardır.

etkinleştirilmesi enableGlobalCache Bu durum, Yarn'ın paylaşılan bir önbellek dizinini birden fazla projede yeniden kullanmasına neden olur. Bu sayede, birden fazla depo aynı kütüphanelere bağımlıysa, Yarn bunların birden fazla kez indirilmesini önleyerek hem ağ bant genişliğinden hem de disk alanından tasarruf sağlar.

Son olarak, enableTelemetry Yarn'ın anonim kullanım bilgilerini geliştiricilere geri gönderip göndermeyeceğini kontrol eder. Birçok şirket gizlilik ve uyumluluk nedenleriyle bunu kapatmayı tercih ederken, diğerleri proje yol haritasına rehberlik etmesi için açık bırakıyor; her iki durumda da, bu sadece yapılandırma dosyasındaki bir bayraktır.

Git Entegrasyonu: Neleri Commit Etmeli, Neleri Göz Ardı Etmeli

Yarn, makinelerinin bir kısmını içeride depoladığı için... .yarn Dizin söz konusu olduğunda, sürüm kontrolüne nelerin dahil edileceği konusunda dikkatli olmak önemlidir. Bu dosyalardan bazılarının mutlaka izlenmesi gerekirken, diğerleri yalnızca depoyu şişirecek önbellek veya derleme dosyalarıdır.

Minimal .gitignore Berry projelerinin çoğunda kullanılan strateji şu şekildedir:

.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*

Bu model tümünü göz ardı ediyor. .yarn Klasörü oluşturur ancak daha sonra kaydedilmesi gereken alt dizinleri beyaz listeye alır. MKS releases Örneğin, bu dizin projeye özgü Yarn ikili dosyasını içerir; bu dosya olmadan, diğer geliştiriciler depoyu klonladıklarında tam olarak aynı CLI sürümünü elde edemeyebilirler.

Diğer izin verilen yollar şunlardır: .yarn/plugins or .yarn/sdks Özel eklentileri ve editör entegrasyonlarını barındırır. Bunları sürüm kontrolü altında tutmak, ekipteki herkesin aynı eklenti setini ve dil araçları desteğini paylaşmasını sağlar.

MKS .pnp.* Girişler, Tak ve Çalıştır modunu kullanıyorsanız bağımlılık ağacını açıklayan Tak ve Çalıştır bildirim dosyalarıdır. Bu değişikliklerin kaydedilmesi, sürekli entegrasyon (CI) veya yeni klonların, manifest dosyalarını yeniden oluşturmaya gerek kalmadan projeyi hemen çalıştırabileceği, tekrarlanabilir ve hatta bazen sıfır kurulum gerektiren iş akışları için çok önemlidir.

Bunun da ötesinde, şunu unutmayın ki yarn.lock Deponuzda birinci sınıf bir vatandaş konumundadır. Bağımlılık değişiklikleriyle birlikte her zaman kaydedilmeli ve güncellenmelidir, aksi takdirde Yarn'ın tüm deterministik avantajları ortadan kalkar.

Yarn mı, npm mi? Yarn'ın Gerçekten Parladığı Anlar

Yarn ve npm aynı temel sorunu çözüyor: Node.js bağımlılıklarını yönetmek; ancak Yarn, çeşitli pratik senaryolarda kendini farklılaştırıyor. En belirgin fark genellikle performansta görülür: paralel kurulumlar ve daha akıllı önbellekleme sayesinde Yarn, büyük projelerde kurulumları genellikle önemli ölçüde daha hızlı tamamlar.

Disk kullanımı da bir diğer güçlü yönümüz, özellikle de Tak ve Çalıştır (PnP) özelliğini benimsemişsek. ortadan kaldırarak node_modulesTipik bir proje çok daha az disk alanı tüketebilir ve PnP ile iyi entegre olan araçlar, Node'un artık derin ve tekrarlayan dizin ağaçlarında gezinmesine gerek kalmadığı için daha hızlı modül çözümlemelerinden faydalanabilir.

Kilit dosyası davranışı açısından Yarn'ın yarn.lock Kompakt yapısı ve yüksek derecede belirleyici özelliği nedeniyle geniş çapta takdir görmektedir. Çözüm kararlarını açıkça kaydeder, bu da belirli bir sürümün neden seçildiğini anlamayı ve sürüm çakışmalarını gidermeyi kolaylaştırır.

Monorepolar, Yarn'ın çalışma alanları özelliği sayesinde uzun zamandır önde olduğu bir alandır. Çalışma alanları sayesinde, tek bir depodaki birden fazla paket aynı kilit dosyasını paylaşır, bağımlılıklar verimli bir şekilde yukarı taşınır ve yerel paketler yapılandırma tekrarına gerek kalmadan otomatik olarak bağlanır.

Yarn'ın açıkça öne çıktığı gerçek dünya kullanım örnekleri arasında genellikle karmaşık CI/CD kurulumları, büyük paylaşımlı kod tabanları veya kurumsal proxy'lerin ve özel sertifikaların arkasındaki ortamlar yer almaktadır. Örneğin, koşmak yarn install --immutable CI içindeki mekanizma, aşağıdaki durumlarda kurulumun başarısız olmasını sağlar: yarn.lock Dosya eşleşmiyor. package.jsonBu sayede tutarsız bağımlılık durumları üretime geçmeden önce yakalanır.

Öte yandan, npm, daha küçük projeler veya npm ekosistemine derinden bağlı ekipler için hala son derece geçerli bir seçenektir. Eğer yalnızca mütevazı bağımlılık ağaçlarına sahip birkaç servis yönetiyorsanız ve monorepo veya PnP'ye fazla güvenmiyorsanız, npm'ye bağlı kalmanın basitliği, Yarn'ın gelişmiş özelliklerinden daha ağır basabilir.

İşletim Sistemine Özgü Kurulum Seçenekleri

Yarn'ın global CLI'sının npm tabanlı kurulumu neredeyse her yerde çalışsa da, işletim sistemine özgü dağıtımlar ve komut dosyaları da sunmaktadır. Yerel paket yöneticilerini tercih ediyorsanız veya uygun bir npm kurulumuna sahip olmayan sistemlerde çalışıyorsanız bunlar faydalıdır.

macOS'ta, Homebrew aracılığıyla Yarn'ı yüklemek oldukça popüler bir yöntemdir. Eğer Node'a (muhtemelen Homebrew aracılığıyla da) zaten sahipseniz, tipik bir iş akışı şu şekildedir:

brew install yarn

Eğer nvm veya başka bir Node sürüm yöneticisi kullanıyorsanız, PATH'inizde shims dizininin herhangi bir Homebrew Node'undan önce yer aldığından emin olun. Aksi takdirde, Yarn komut dosyalarını çalıştırırken beklediğinizden farklı bir Node sürümü kullanabilirsiniz.

macOS'ta bir diğer seçenek ise, Node.js ve Yarn'ın henüz kurulu olmaması durumunda her ikisini de kurabilen MacPorts'tur. Daha da fazla kontrol için Yarn, macOS ve genel Unix sistemlerinde çalışan bir kurulum kabuk betiği de yayınlar; bu betiği kabuğunuza yönlendirmek, Yarn'ı tek seferde indirir ve kurar.

Windows'ta önerilen kurulum yolları MSI yükleyici, Chocolatey veya Scoop'tur. MSI yükleyicisi sizi grafiksel bir sihirbaz aracılığıyla yönlendirir ve genellikle sürecin bir parçası olarak Node.js'nin mevcut olmasını sağlar. Scoop ise, isteğe bağlı olarak Node.js'nin eksik olması durumunda onu önererek Yarn'ı komut satırından yüklemenize olanak tanır.

Windows'a Yarn kurarken, proje klasörünüzü ve Yarn önbellek dizinini (genellikle şu konumda bulunur: ) beyaz listeye eklemek çok iyi bir fikirdir. %LocalAppData%\YarnAntivirüs programınızda. Aksi takdirde, her dosya indirme ve yazma işlemi taranabilir ve bu da kurulumlarınızı önemli ölçüde yavaşlatabilir.

Linux dağıtımları genellikle birden fazla seçenek sunar: resmi sistem paketleri, Yarn'ın kendi depoları veya manuel tarball kurulumları. Örneğin Debian ve Ubuntu'da, Yarn'ın APT deposunu ekleyebilir, isteğe bağlı olarak NodeSource'u güncel bir Node.js sürümü alacak şekilde yapılandırabilir ve ardından Yarn'ı kurabilirsiniz. apt.

CentOS, Fedora, RHEL veya Arch gibi dağıtımlarda Yarn, indirip diskin herhangi bir yerine açabileceğiniz GPG imzalı tarball'lar sunar. Bu manuel kurulumlarda, genellikle tarball'ın imzasını GPG ile doğrulamanız ve ardından açılmış Yarn dizinini PATH'inize eklemeniz gerekir, böylece yarn Bu komut sistem genelinde kullanılabilir.

Unix, Linux ve Windows'ta PATH Yapılandırması

Kurulum sırasında sıkça karşılaşılan bir karışıklık kaynağı PATH yapılandırmasıdır: Yarn yüklenmiş olabilir, ancak kabuk ikili dosyayı bulamayabilir. Bu durumda, Yarn dizininin PATH değişkenine dahil edilmesi için ortam ayarlarınızı güncellemeniz gerekir.

Unix benzeri sistemlerde manuel tarball kurulumları için, genellikle Yarn'ın dizinine işaret eden bir yol dışa aktarılır. bin dizin. Örneğin:

export PATH="$PATH:/opt/yarn-[version]/bin"

Bu satırı kabuk profil dosyanıza (örneğin şu şekilde) ekleyin: .bashrc, .bash_profile, .zshrc(veya benzeri bir komut satırı aracı kullanarak) ardından yeni bir terminal oturumu açın veya dosyanın kaynağını çalıştırın, böylece değişiklik geçerli olur. Bir kez yapılan, yarn --version Herhangi bir dizinden çalışmalıdır.

Eğer yaslanırsanız yarn global Komutları çalıştırırken, Yarn'ın global bin klasörünün PATH'te olduğundan da emin olması gerekir. Bunu gerçekleştirmenin hızlı bir yolu, profilinizi aşağıdakilerle genişletmektir:

export PATH="$PATH:`yarn global bin`"

Fish shell kullanıcıları bunun yerine şunlara güveniyor: fish_user_paths ve çalıştırabilir:

set -U fish_user_paths (yarn global bin) $fish_user_paths

Windows'ta, Yarn ikili dosya dizinini PATH ortam değişkenine manuel olarak eklemeniz gerekebilir. Basit bir örnek şöyle olabilir:

set PATH=%PATH%;C:\.yarn\bin

Pratikte, grafiksel yükleyiciler veya Windows paket yöneticileri genellikle PATH yapılandırmasını sizin için halleder, ancak bir şeyler beklendiği gibi çalışmadığında bunu manuel olarak nasıl ayarlayacağınızı bilmek faydalıdır.

Tipik Kurulum Sorunları ve Bunların Nasıl Çözüleceği

Açık ve net dokümantasyona rağmen, ekipler Yarn'ı benimsediğinde belirli kurulum sorunları tekrar tekrar ortaya çıkıyor. Neyse ki, bunların çoğunun iyi anlaşılmış ve tekrarlanabilir çözümleri var.

Tekrarlayan sorunlardan biri, npm aracılığıyla global CLI'yı kurarken ortaya çıkan izinlerle ilgili hatalardır. Eğer npm önekiniz sistem tarafından yönetilen bir dizine işaret ediyorsa, şu komutu kullanabilirsiniz:

sudo npm install -g yarn

İşe yarayabilir ancak uzun vadede ideal değildir. Daha iyi bir yöntem, npm'i kullanıcıya ait genel bir dizin kullanacak şekilde yapılandırmaktır. Mevcut önekinizi şu komutla kontrol edebilirsiniz:

npm config get prefix

Eğer bir şeye işaret ediyorsa /usrKendi dizininizi oluşturun ve npm'i yeniden yapılandırın. Örneğin:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH

Kabuk yapılandırmanızı yeniden yükledikten sonra, Yarn'ı global olarak kurabilirsiniz. sudoBu sayede birçok izin sorunundan kurtulmuş olursunuz.

Sık karşılaşılan bir diğer karışıklık kaynağı ise global Yarn ile proje Yarn arasındaki sürüm farklılıklarıdır. Unutmayın ki bu kasıtlıdır: küresel 1.x CLI yalnızca bir başlatıcıdır ve Berry ile yapılandırılmış bir proje içinde kullanıldığında, hangi sürüm varsa ona yetki devrediyor. .yarn/releases.

Yarn'ın başarılı bir kurulum bildirmesine rağmen paketlerin eksik görünmesi durumunda, PnP'yi henüz anlamayan bir araçla karşılaşıyor olabilirsiniz. Bazı editörler, kod denetleyicileri veya derleme araçları bir varsayımda bulunur. node_modules Dizin mevcut olmadığında hata verir. Yaygın çözümler arasında editörler için Yarn SDK'larını etkinleştirmek, Yarn destek matrisinden uyumlu araçlar kullanmak veya bağlayıcıyı geçici olarak değiştirmek yer alır. node-modules üzerinden .yarnrc.yml.

Birden fazla dalın paralel olarak bağımlılık eklediği veya değiştirdiği aktif ekiplerde kilit dosyası çakışmaları kaçınılmazdır. Ne zaman yarn.lock Birleştirme sırasında çatışmalar meydana gelirse, etkili bir strateji, bir dalı temel dal olarak seçmek, mümkün olduğunca bu temel dal lehine metinsel çatışmaları elle çözmek ve ardından işlemi çalıştırmaktır. yarn install Yeni doğruluk kaynağı olarak tekrar kaydedeceğiniz temiz bir kilit dosyası oluşturmak için.

Önbellekle ilgili sorunlar genellikle basit bir işlemle çözülür. yarn cache clean ardından yeni bir yarn install. Yarn'ın garip davranması, paketlerin güncel olmaması veya tuhaf çözümleme hatalarının ortaya çıkması durumunda, önbelleği temizlemek ve yeniden yüklemek genellikle daha fazla incelemeye gerek kalmadan sistemi normal durumuna döndürür.

Kurulum Sonrası Kontroller ve Sürekli Performans Ayarlaması

Yarn yüklendikten ve komutlar başarıyla çalıştırıldıktan sonra, projeniz için her şeyin doğru şekilde yapılandırıldığından emin olmak için birkaç hızlı sağlık kontrolü yapmakta fayda var. İlk ve en basit yöntem, sürümü doğrulamaktır:

yarn --version

Bundan sonra, halihazırda bir projesi olan herhangi bir projede package.json, yürütme yarn install Hata olmaması, ortamınızın, kayıt defterine erişiminizin ve Node sürümünüzün uyumlu olduğunun güçlü bir göstergesidir. Bağımlılıklarınız ağırsa, kurulum süresini takip etmek isteyebilirsiniz; sonraki çalıştırmalarda, Yarn'ın önbellekleme ve eşzamanlılık özellikleri bu süreyi önemli ölçüde azaltacaktır.

Yarn ayrıca şu gibi komutlar da sunar: yarn outdated Hangi paketlerin daha yeni sürümlerinin mevcut olduğunu görmek için, yarn list --depth=0 Yüklü olan tüm üst düzey bağımlılıkları yazdırmak için. Bu araçlar, bağımlılık kaymasını takip etmenize ve yükseltmeleri ne zaman planlayacağınıza karar vermenize yardımcı olur.

Performans açısından, kurulumdan sonra kullanabileceğiniz çeşitli seçenekler mevcuttur. gibi ayarlar networkConcurrencyÖzel önbellek klasörleri oluşturmak veya CI'da ayrıntılı ilerleme çubuklarını devre dışı bırakmak, büyük kurulumlarda saniyeler hatta dakikalar kazandırabilir. Örneğin, eşzamanlılığı artırmak için:

yarn config set network-concurrency 8

Yarn'ın paralel olarak daha fazla ağ isteği göndermesine olanak tanır ve bu da genellikle hızlı bağlantılarda indirme hızını artırır.

Son olarak, çok büyük monorepolar veya çoklu ortam kurulumları için, Yarn'ı ölçeklenebilir altyapı (örneğin konteyner tabanlı CI işlem hatları veya bulut derleme platformları) ile birleştirmek, onun belirleyici ve önbellek dostu tasarımından tam olarak yararlanmanızı sağlar. Çünkü her kurulum şu şekilde yönlendirilir: yarn.lock ve PnP veya node_modules CI düğümleri arasında paylaşılan veya derlemeler arasında yeniden kullanılan meta veriler ve önbellekler, kurulum sürelerini önemli ölçüde kısaltabilir.

Özetle, Yarn'ı doğru şekilde kurmayı, projeye göre sabitlemeyi, PATH ve yapılandırmayı ayarlamayı ve önbellekleme ve çalışma alanı özelliklerinden yararlanmayı öğrenmek için zaman ayırmak kısa sürede karşılığını veriyor. Sonuç olarak daha hızlı kurulumlar, daha öngörülebilir derlemeler, daha iyi monorepo ergonomisi ve ekip üyeleri, CI/CD sistemleri ve üretim ortamlarında yeniden üretilmesi daha kolay bir bağımlılık yönetimi iş akışı elde edersiniz.

İlgili Mesajlar: