Node.js İçin Yarn Paket Yöneticisi Kurulumu ve Kullanımı
Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde Yarn’ın global kurulumunu, projeye özel Yarn Berry sürümünü ayarlamayı, bağımlılık ekleme/kaldırma/güncelleme komutlarını kullanmayı ve Yarn–npm farklarını detaylı biçimde öğrenirsiniz.
🛠️ 1. Node.js Kontrolü ve Global Yarn Kurulumu
Node.js’in Yüklü Olduğunu Kontrol Et
Bu komut sistemde Node.js’in kurulu olup olmadığını gösterir.
node -v
Yarn CLI’ı Global Olarak Kurma
Bu komut, Yarn’ın global komut satırı aracını kurar. Projede kullanılacak yerel Yarn’ı başlatan şey budur.
sudo npm install -g yarn
Global Yarn’ın Doğru Kurulduğunu Doğrula
Bu komut global Yarn sürümünü gösterir (genelde 1.22.x).
yarn --version
📂 2. Projeye Özel Yarn Berry Sürümü Ayarlama
Proje Dizini Oluşturma
Yeni bir proje başlatıyorsan dizin oluşturmak için:
mkdir rabisu-app
cd rabisu-app
Projeye Özel Yarn Sürümünü Kurma
Bu komut, projen içine Yarn Berry (modern sürüm) kurar ve .yarn/releases klasörünü oluşturur.
yarn set version berry
Proje İçindeki Yerel Yarn Sürümünü Kontrol Et
Bu komut artık projenize özel olan Yarn 3.x / 4.x sürümünü gösterir.
yarn --version
🧾 3. Git İçin .gitignore Yapılandırması
Aşağıdaki yapı Yarn’ın gereksiz klasörlerini dışarıda bırakır, gerekli olanları ise dahil eder.
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
⚙️ 4. Temel Yarn Komutları (Açıklamalı)
Yeni Proje Başlatma
Bulunduğun dizinde package.json ve yarn.lock oluşturur.
yarn init
Tüm Bağımlılıkları Kurma
package.json’daki tüm modülleri kurar.
yarn install
Yeni Paket Ekleme
Bir bağımlılık yükler ve package.json + yarn.lock dosyalarını günceller.
yarn add express
Sadece Geliştirme Bağımlılığı Ekleme
Bu komut bağımlılığı devDependencies’e ekler.
yarn add eslint --dev
Bağımlılık Kaldırma
Projeden bir paketi kaldırır.
yarn remove express
Tüm Bağımlılıkları Güncelleme
package.json’daki sürüm aralıklarına göre güncelleme yapar.
yarn upgrade
Script Çalıştırma
package.json içindeki scripts bölümündeki bir komutu çalıştırır.
yarn run test
🧪 5. Express ile Basit Sunucu (Açıklamalı Örnek)
Express yükleme
yarn add express
index.js – Basit HTTP Sunucusu
const express = require("express");
const app = express();
// Root endpoint yanıtı
app.get("/", (req, res) => res.send("Yarn is working!"));
// Sunucuyu port 3000'de başlat
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
Sunucuyu Çalıştırma
yarn node index.js
Sunucuyu Test Etme
curl http://localhost:3000
🧩 6. Yarn vs NPM: Detaylı Karşılaştırma
| Özellik | Yarn | NPM |
|---|---|---|
| Kurulum Hızı | Çok hızlı, paralel işlem | Daha yavaş |
| Tutarlılık | Katı deterministic (yarn.lock) | Esnek |
| Monorepo | Workspaces güçlü | Sınırlı |
| Disk Kullanımı | PnP ile %50 daha az alan kullanır | node_modules ağır |
| Offline Çalışma | Güçlü cache | Zayıf |
| Yapılandırma | .yarnrc.yml | .npmrc |
💡 7. Ne Zaman Yarn Kullanılır?
-
CI/CD ortamlarında tutarlılık gerekiyorsa
-
Büyük monorepo yapılarında
-
Daha hızlı kurulum istiyorsanız
-
PnP sayesinde disk alanı kazanmak istiyorsanız
Ne Zaman NPM Kullanılır?
-
Basit projelerde
-
Ekip kültürü NPM üzerine kuruluysa
-
Araç zincirin sadece NPM destekliyorsa
❓ 8. Sıkça Sorulan Sorular (SSS)
1. PnP modu ne işe yarar?
node_modules klasörünü kaldırır, tüm modülleri .pnp.cjs dosyasından çözer. Hız ve disk tasarrufu sağlar.
2. Global Yarn 1.x ile proje Yarn 4.x farklı olmalı mı?
Evet. Global Yarn sadece “launcher”dır. Proje içinde daima Berry çalışır.
3. Bir NPM projesini Yarn’a nasıl çeviririm?
Projeye gir →
yarn install
→ yarn.lock oluşturulur → package-lock.json silinir.
4. PnP ile “Packages Not Found” hatası neden olur?
Eski araçlar node_modules beklediği için. Çözüm:
yarn dlx @yarnpkg/sdks vscode
5. yarn install --immutable ne yapar?
CI/CD’de package.json ile lockfile arasında fark varsa kurulumu durdurur.
🧾 Sonuç
Bu rehberle Yarn’ın global kurulumu, proje içi Berry sürüm sabitlemesi, temel komutlar, PnP avantajı ve Yarn–npm farklarını öğrendiniz. Hız, tutarlılık ve modern monorepo ihtiyaçları için Yarn güçlü bir tercihtir.
Rabisu Bulut altyapısında projelerinizi Yarn ile kolayca yönetebilirsiniz.