Paket Yöneticileri: Npm, Yarn ve pnpm

Aziz Şentürk
Wellbees Tech
Published in
2 min readAug 14, 2023

Son dönemde, JavaScript frameworklerini geliştirme süreçlerinde, paket yöneticilerinin önemi çok büyüktür. Paket yöneticileri, projelere bağımlılıkların eklenmesi, güncellenmesi ve silinmesi gibi işlemlerin gerçekleştirilmesini sağlar. Bu makalede, npm, Yarn ve pnpm olmak üzere en popüler üç paket yöneticisinin farklarından bahsedeceğim.

npm

npm (Node Package Manager), Node.js paketlerini yönetmek için en yaygın kullanılan paket yöneticisidir. npm, varsayılan olarak Node.js ile birlikte gelir ve genellikle projelerinizi başlatırken otomatik olarak yüklenir.

  • Performans: Esas olarak paketlerin indirilmesi ve bağımlılıkların çözülmesi için sunucularından veri alır. Yapılan güncellemelerle performansı önemli ölçüde artırıldı.
  • Bağımlılık Yönetimi: Projenin her seferinde aynı bağımlılıkları kurması ve tutarlılığın sağlaması için “package-lock.json” adında bağımlılıkları sabitleyen bir lockfile sistemi kullanır.
  • Disk Alanı Kullanımı: Her proje için ayrı bir bağımlılık klasörü oluşturur ve her proje bağımlılıklarını ayrı ayrı saklar. Bu, her projenin disk alanında daha fazla yer kaplamasına neden olur.
  • Paralel Yükleme: Paketleri tek tek sıralı olarak yükler.

Mevcut bir npm projesine devam etmek veya mevcut bir npm ekosisteminde yer almak istiyorsanız npm’i kullanmaya devam edebilirsiniz.

Örnek:

// npm paketi oluşturma
npm init

// yeni paket yükleme
npm install paketAdi

// paketi güncelleme
npm update paketAdi

Yarn

Yarn, Facebook tarafından, npm’e alternatif olarak geliştirilmiş bir paket yöneticisidir. Yarn, paket bağımlılıklarını daha hızlı ve güvenli bir şekilde yönetmeyi hedefler.

  • Performans: Paket indirme ve kurulum sürelerini optimize etmek için özel bir önbellekleme mekanizmasına sahiptir. Bu nedenle, paketlerin indirilmesi ve bağımlılıkların çözülmesi genellikle daha hızlıdır.
  • Bağımlılık Yönetimi: Projenin her seferinde aynı bağımlılıkları kurması ve tutarlılığın sağlaması için “yarn.lock” adında bağımlılıkları sabitleyen bir lockfile sistemi kullanır.
  • Disk Alanı Kullanımı: Her proje için ayrı bir bağımlılık klasörü oluşturur ve her proje bağımlılıklarını ayrı ayrı saklar. Bu, her projenin disk alanında daha fazla yer kaplamasına neden olur.
  • Paralel Yükleme: Paralel yükleme özelliği sayesinde paketleri aynı anda yükleyebilir.

Yarn, hızlı kurulum ve güncelleme özellikleriyle bilinir.

Örnek:

// yarn paketi oluşturma
yarn init

// yeni paket yükleme
yarn add paketAdi

// paketi güncelleme
yarn upgrade paketAdi

pnpm

pnpm, bağımlılıkları paylaşarak disk alanından tasarruf etmeyi hedefleyen bir paket yöneticisidir. pnpm, birden çok projede aynı bağımlılıkları paylaşırken gereksiz yinelenmeyi önler.

  • Performans: Bağımlılıkların paylaşılmasını sağlayan özelliği sayesinde tek bir bağımlılık ağacı kullanır. Bellekte ve diskte daha az yer kapladığı için performansı yüksektir.
  • Bağımlılık Yönetimi: Projenin her seferinde aynı bağımlılıkları kurması ve tutarlılığın sağlaması için “pnpm-lock.yaml” adında bağımlılıkları sabitleyen bir lockfile sistemi kullanır.
  • Disk Alanı Kullanımı: Tüm projelerin bağımlılıklarını tek bir paylaşılan bağımlılık ağacında sakladığı için disk alanından tasarruf sağlar. Bu, birden çok projeyle çalışırken daha az disk alanı kullanmanıza olanak tanır.
  • Paralel Yükleme: Paralel yükleme özelliği sayesinde paketleri aynı anda yükleyebilir.

pnpm, disk alanı kullanımını azaltır ve projelerinizin bağımlılıklarını daha verimli bir şekilde yönetmenize yardımcı olur.

Örnek:

// pnpm paketi oluşturma
pnpm init

// yeni paket yükleme
pnpm install paketAdi

// paketi güncelleme
pnpm update paketAdi

--

--