PNPM Nedir ve Kullanımı
JavaScript projelerinde paket yönetimi için genellikle npm veya Yarn kullanıyoruz. Bunların yanında son zamanlarda sıkça karşılaştığımız bir diğer paket yöneticisi ise pnpm.
PNPM, Node.js projelerinde kullanılan bir paket yöneticisidir. Temel olarak npm ile yaptığımız işlemlerin çoğunu pnpm ile de yapabiliriz. Paketleri kurmak, kaldırmak, güncellemek ve proje bağımlılıklarını yönetmek için kullanılır.
PNPM Nedir?
PNPM'in açılımı Performant NPM olarak geçer. npm'e benzer şekilde çalışır ancak paketleri yönetme şekli biraz farklıdır.
Özellikle birden fazla JavaScript projesiyle çalışırken disk alanını daha verimli kullanması ve paket kurulumlarını daha hızlı yapabilmesi pnpm'in öne çıkan özelliklerinden biridir.
Benim açımdan en önemli farklarından biri, aynı paketi farklı projelerde tekrar tekrar indirmek yerine paketleri merkezi bir alanda saklayıp projelerde bunlara bağlantı oluşturmasıdır.
PNPM Nasıl Kurulur?
PNPM kullanabilmek için öncelikle bilgisayarımızda Node.js'in kurulu olması gerekiyor.
Node.js kuruluysa pnpm'i npm üzerinden kurabiliriz:
npm install -g pnpm
Kurulumun başarılı olup olmadığını kontrol etmek için:
pnpm -v
Versiyon numarası geliyorsa pnpm kullanıma hazır demektir.
Yeni Bir Proje Oluşturmak
PNPM ile yeni bir proje oluşturmak için pnpm init komutunu kullanabiliriz.
pnpm init
Bu komut çalıştırıldığında projemiz için bir package.json dosyası oluşturulur.
Paket Kurmak
Bir paketi projeye eklemek için pnpm add komutunu kullanıyoruz.
pnpm add axios
Bu komut axios paketini projemize ekler ve package.json içerisindeki bağımlılıklara yazar.
Development Dependency Eklemek
Sadece geliştirme aşamasında kullanacağımız bir paketi eklemek için -D parametresini kullanabiliriz.
pnpm add cypress -D
Bu şekilde paket devDependencies altında yer alır.
Paket Silmek
Projeden bir paketi kaldırmak için pnpm remove komutunu kullanabiliriz.
pnpm remove axios
Bu komut paketi projemizden kaldırır ve package.json içerisindeki bağımlılığını da siler.
Bağımlılıkları Kurmak
Bir projeyi başka bir bilgisayara indirdiğimizde genellikle node_modules klasörü projeyle birlikte gelmez.
Bu durumda package.json içerisindeki bağımlılıkları kurmak için:
pnpm install
komutunu kullanabiliriz.
Bu komut projede tanımlı olan bağımlılıkları indirerek node_modules klasörünü oluşturur.
Script Çalıştırmak
PNPM ile package.json içerisinde tanımladığımız scriptleri de çalıştırabiliriz.
Örneğin package.json içerisinde şöyle bir script olduğunu düşünelim:
{ "scripts": { "dev": "vite" } }
Bu scripti çalıştırmak için:
pnpm dev
yazmamız yeterlidir.
Paket Güncellemek
Bir paketin güncel sürümünü yüklemek için pnpm update komutunu kullanabiliriz.
pnpm update
Belirli bir paketi güncellemek istersek paket adını da yazabiliriz:
pnpm update axios
PNPM ile NPM Komutlarının Karşılığı
PNPM kullanmaya başladığımızda npm'de kullandığımız komutların çoğunun karşılığını kolayca bulabiliriz.
| NPM | PNPM | Açıklama |
|---|---|---|
npm install |
pnpm install |
Bağımlılıkları kurar |
npm install axios |
pnpm add axios |
Paket ekler |
npm uninstall axios |
pnpm remove axios |
Paket kaldırır |
npm update |
pnpm update |
Paketleri günceller |
npm run dev |
pnpm dev |
Script çalıştırır |
PNPM Neden Kullanılır?
PNPM'in en önemli avantajlarından biri paketleri daha verimli şekilde saklamasıdır. Aynı paket farklı projelerde kullanılıyorsa her proje için tekrar tekrar aynı paketin fiziksel olarak saklanması gerekmez.
Bu nedenle özellikle çok sayıda JavaScript veya Node.js projesiyle çalışırken disk kullanımında avantaj sağlayabilir.
Ayrıca npm'e alışkın olan biri için kullanımı oldukça kolaydır. Temel komutların mantığı birbirine çok yakındır.
Sonuç
PNPM, Node.js projelerinde bağımlılıkları yönetmek için kullanabileceğimiz alternatif bir paket yöneticisidir.
Ben npm kullanan birinin pnpm'e geçerken çok fazla zorlanacağını düşünmüyorum. install, add, remove, update gibi temel komutlara alıştıktan sonra kullanımı oldukça basit hale geliyor.
Özellikle birden fazla proje ile çalışıyorsanız, paketleri daha verimli yönetmesi nedeniyle pnpm tercih edilebilir.
