pnpm gözünden 2021 yılı
Yılın sonuna geldik.. Ve, pnpm için iyi bir yıl oldu. Bakalım, nasıl geçti ?
Kullanım
İndirme İstatistikleri
Bu yılki hedefim Bower'ı indirme sayısıyla geçmekti. Bu hedefe, Kasım'da ulaşabildik:
pnpm, 2021'de 2020'ye göre 3 kat daha fazla indirildi:
Bu istatistikler, pnpm'nin kurulabileceği tüm farklı yolları içermiyor bile! Yalnızca pnpm npm paketinin indirmelerini ölçüyor. Bu yıl, farklı şekilde gönderilen pnpm'in derlenmiş binary sürümlerini de ekledik.
Doküman ziyaretleri
Google Analytics'i kullanarak belgelerimizden bazı kişiselleştirilmemiş istatistikler topluyoruz. 2021'de bazen haftada 2.000'den fazla tekil ziyaretçimiz oldu.
Kullanıcılarımızın çoğu Amerika Birleşik Devletleri ve Çin'den.
GitHub yıldızları
Ana GitHub repomuz bu yıl 5.000'in üzerinde yıldız aldı.
Yeni kullanıcılar
Our biggest new user this year is Bytedance (the company behind TikTok).
Ayrıca, birçok harika açık kaynak projesi pnpm kullanmaya başladı. Bazıları, monorepolar'a olan desteği nedeniyle pnpm'e geçti:
Bazıları, pnpm'in verimli, hızlı ve güzel oluşunu sevdikleri için geçti:
Öne çıkan özellikler:
Yeni lockfile
formatı ( v6.0.0'dan beri)
Bu yılki ilk ve en önemli değişikliklerden biri yeni pnpm-lock.yaml
formatıydı. Bu son derece önemli bir değişiklikti, bu yüzden v6'yı yayınlamak zorunda kaldık. Buna rağmen başarılı oldu. Eski lockfile Git'in sık sık çakışmasına(conflicts) neden oluyordu. Yeni format kullanıma sunulduğundan beri Git çakışmaları(conflicts) hakkında herhangi bir şikayet almadık.
Node.js sürümlerini yönetme ( v6.12.0'dan beri)
Node.js sürümlerini yönetmeye izin veren yeni bir komut (pnpm env
) yayınladık. Yani nvm veya Volta gibi Node.js sürüm yöneticileri yerine pnpm kullanabilirsiniz.
Ayrıca, pnpm bağımsız çalıştırılabilir bir dosya olarak gönderilir, böylece sistemde önceden kurulu Node.js olmasa bile onu çalıştırabilirsiniz.
Yerel bağımlılıkları enjekte etme ( v6.20.0'dan beri)
Yerel bir bağımlılığı "enjekte edebilirsiniz". Varsayılan olarak, yerel bağımlılıklar node_modules
ile sembolik olarak bağlantılıdır, ancak bu yeni özellik ile pnpm'e bunun yerine paketin dosyalarını direk bağlama (hard-link) talimatı verebilirsiniz.
Eş bağımlılık (peer-dependency) sorunlarının iyileştirilmiş raporlaması ( v6.24.0'dan beri)
Eş bağımlılık sorunları düz metin olarak yazdırılırdı ve bunları anlamak zordu. Artık hepsi gruplandırılmış ve düzenli bir hiyerarşi yapısında yazdırılmıştır.
Rekabet
Yarn
Yarn, v3.1'e bir pnpm linker ekledi. Böylece Yarn, pnpm'in oluşturduğuna benzer bir node-modules dizin yapısı oluşturabilir.
Ayrıca Yarn ekibi, disk alanı açısından daha verimli olmak için içerik adreslenebilir bir depolama uygulamayı planlıyor.
npm
npm ekibi, pnpm'nin kullandığı sembolik bağlantılı düğüm modülleri dizin yapısını da benimsemeye karar verdi (ilgili RFC).
Diğerleri
Zig ile yazılmış Bun ve Rust ile yazılmış Volt'tan her ikisi de, npm/Yarn/pnpm'den daha hızlı olduğunu iddia ediyor. Bu yeni paket yöneticilerini henüz karşılaştırmadım.
Gelecek planları
Daha hızlı, daha iyi, en iyisi.