Merhabalar.

Bu yazımda IT Kavramlarından PNPM’den bahseceğim.

PNPM, “Plug’n Play Package Manager”ın kısaltmasıdır. PNPM, JavaScript projelerinde kullanılan bir paket yöneticisidir. Diğer paket yöneticileri gibi (npm, yarn gibi), projenizin bağımlılıklarını yönetmek için kullanılır.

NPM gibi bir paket yöneticimiz varken ortaya yeni bir paket yöneticisi neden çıkar?

Mutlaka ortada bir sorun vardı ve bu o sorunu çözmek için çıktı diye düşünürüz doğal olarak.

NPM paket yöneticisi, her proje için indirilen paketleri ayrı ayrı tutar. Ancak, bu durum zamanla disk kullanımını olumsuz etkileyebilir. Örneğin, X projesinde 50 paket kullanılıyor ve Y projesinde 60 paket var, ancak bu paketlerin 40’ı aynı. NPM, her iki projede de aynı 40 paketi ayrı ayrı saklar. Bu da gereksiz disk alanı kullanımına neden olur. Eğer 10 projeniz varsa ve bu projelerde yine ortak 40 paket bulunuyorsa, her proje için ayrı ayrı tutulan bu paketler toplamda ekstra disk alanı kullanımına sebep olur. Yani, projelerinizin toplam disk kullanımı, ortak paketlerin her biri için ayrı ayrı ağırlığından dolayı artar.

İşte sorunumuz bu ve PNPM tam olarak buna çözüm bulmak için geldi.

PNPM, paketleri proje içinde kopyalamak yerine, bir merkezi depoda tutar ve projenizde bu depoya işaret eden bağlantılar oluşturur. Bu, disk alanından tasarruf sağlayabilir ve paketler arasında paylaşılan modüllerin tekrar kullanılmasını kolaylaştırabilir.

PNPM’nin bu yaklaşımı, projenizin boyutunu küçültüp bağımlılıklarınızı daha etkin bir şekilde yönetmenize yardımcı olabilir. Ayrıca, paket güncellemelerini daha hızlı ve verimli bir şekilde gerçekleştirebilirsiniz.

NPM (Node Package Manager):

  • NPM, projede kullanılan paketleri node_modules klasörüne indirir.
  • Her proje için ayrı bir kopya oluşturur, bu da disk alanı ve bant genişliği kullanımını artırabilir.

PNPM:

  • PNPM, paketleri global olarak değil, bir cache kullanarak saklar. Bu, aynı paketin farklı projelerde paylaşılmasına olanak tanır ve disk alanı tasarrufu sağlar.
  • Sembolik bağlantılar kullanarak paketler arasında paylaşım yapar, bu da depolama ve yükleme sürelerini azaltır.
  • Kendi sitesindeki açıklamayı kaynak alırsak PNPM, NPM’den 2 kat daha hızlıdır.

https://pnpm.iohttps://pnpm.io

Temel PNPM Komutları

pnpm init: Bir proje başlatmak ve package.json dosyasını oluşturmak için kullanılır. Örneğin:

pnpm init

pnpm install: Projeye bağımlılıkları eklemek için kullanılır. Paketleri yüklemek için genellikle şu şekilde kullanılır:

pnpm install paket-adı

Örnek

npm install lodash

pnpm add: Projeye yeni paketler eklemek için kullanılır.

pnpm add paket-adı

Örnek

pnpm add lodash

pnpm update: Tüm bağımlılıkları güncellemek için kullanılır.

pnpm update

pnpm remove: Bir paketi projenizden kaldırmak için kullanılır. Örneğin, pnpm remove paket-adi şeklinde kullanılabilir.

pnpm remove express

pnpm run: Proje içinde tanımlı olan script’leri çalıştırmak için kullanılır. Örneğin, pnpm run start komutu projenizdeki “start” adlı script’i çalıştırır.

pnpm run start

Umarım bu açıklama ve örnekler, pnpm’in temel konseptlerini anlamanıza yardımcı olmuştur.

Bir sonraki yazımda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.