NPM ve Yarn: Paket Yönetimi ve package.json Dosyası

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

1. Paket Yöneticisi Nedir?​


Paket yöneticisi, projenizin bağımlılıklarını (dependencies) yöneten bir kütüphanedir. En popüler iki tanesi şunlardır:

NPM (Node Package Manager): Node.js ile birlikte gelen, dünyanın en büyük yazılım kayıt defterine sahip standart araçtır.

Yarn: Facebook (Meta) tarafından NPM'e alternatif olarak geliştirilen, özellikle hız ve güvenlik odaklı bir paket yöneticisidir.

Günümüzde her iki araç da birbirine oldukça yakındır ve işlevsel olarak aynı görevi görürler.

2. package.json: Projenin Kimlik Kartı​


Her modern JavaScript projesinin kök dizininde bir package.json dosyası bulunur. Bu dosya, projeniz hakkında her şeyi tarayıcıya ve diğer geliştiricilere anlatır:

Projenin adı ve versiyonu.

Hangi kütüphanelerin (paketlerin) yüklü olduğu.

Projenin nasıl çalıştırılacağı (scripts).

Yeni Bir Proje Başlatmak:
Terminalde şu komutu çalıştırdığınızda size birkaç soru sorulur ve package.json dosyanız otomatik oluşur:
Bash:
npm init -y  # veya yarn init

3. Paket Yükleme ve Yönetme​


Diyelim ki projenize popüler tarih kütüphanesi olan lodash eklemek istiyorsunuz:

Bash:
npm install lodash    # veya yarn add lodash

Bu komuttan sonra projenizde iki şey değişir:

node_modules Klasörü: Yüklediğiniz kütüphanenin tüm kaynak kodları buraya iner. (Bu klasör çok büyüktür, asla Git'e yüklenmemelidir!)

package-lock.json (veya yarn.lock): Paketlerin tam olarak hangi sürümde yüklendiğini kaydeden "kilit" dosyasıdır.

4. Scripts Bölümü: Kısayollar Oluşturma​


package.json içindeki "scripts" alanı, uzun terminal komutlarını tek kelimeyle çalıştırmanızı sağlar.

JSON:
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js",
"test": "jest"
}

Artık terminale npm run dev yazdığınızda, arka planda nodemon app.js komutu çalışacaktır.

5. Dependency vs DevDependency​


Paket yüklerken iki seçeneğiniz vardır:

Dependencies: Uygulamanın çalışması için şart olan paketler (Örn: React, Express).

DevDependencies (--save-dev): Sadece geliştirme aşamasında lazım olan araçlar (Örn: Kod düzenleyiciler, test araçları).

Bash:
npm install nodemon --save-dev



Sonuç

Paket yöneticileri olmasaydı, kullandığımız her kütüphaneyi internetten manuel indirip klasörlere kopyalamamız ve versiyonlarını elle takip etmemiz gerekirdi. NPM ve Yarn bu süreci otomatikleştirerek odak noktamızın sadece "kod yazmak" olmasını sağlar.
 
Geri
Üst