Ana içeriğe atla

pnpm gözünden 2021 yılı

· 3 dakikalık okuma

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:

note

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

Bu yılki en büyük yeni kullanıcımız Bytedance (TikTok'un arkasındaki şirket).

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.