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.