NPM, Yarn ve PNPM Nedir?

Melih Karataş
6 min readOct 4, 2023

--

The picture shows NPM, yarn and PNPM’s logo
The picture shows NPM, yarn and PNPM’s logo

Merhaba. Yazılıma yeni başlayan veya yazılımda ilerlemeye çalışırken karşımıza çıkan bu terimler nedir? Bu yazımızda NPM, yarn ve PNPM kısa ve öz anlatım ile ne olduğunu, arasındaki farklılıkları inceleyeceğiz. İyi okumalar.

İçindekiler

  1. NPM Nedir?
  2. Paket Yönetim Sistemi Nedir?
  3. Yarn Nedir?
  4. PNPM Nedir?
  5. Ana Başlık Altında Farklılıkları İnceleme
  6. Kurulum
  7. Örnek Kullanım
  8. Windows Politikasını Değiştirme
  9. Son Sözler
  10. Kaynakça

NPM Nedir?

NPM (Node Package Module) kısaltılmasıdır. Javascript için geliştirilmiş ve Node.js’in standart kabul ettiği paket yönetim sistemidir. NPM 2009 yılında oluşturulmuş, 12 Ocak 2010 yılında piyasaya sürülmüştür. Isaac Z. Schlueter tarafından yazılmıştır. NPM, Github tarafından satın alınmıştır. Daha sonra Microsoft, Github’u satın almıştır. NPM şu an Github ve Microsoft (Github’ta Microsoft alt markası olduğundan) geliştirilmektedir. Güncel sürümü 10.2.0'dır.

Paket Yönetim Sistemi Nedir?

Yazılım paketlerinin ve kütüphanelerin kurulum, güncelleme, yapılandırma ve kaldırılmasını sağlayan sistemdir.

Yarn Nedir?

Yarn, Meta Inc(Facebook), Exponent, Google ve Tilde işbirliği sonucu Sebastian McKenzie tarafından Javascript için geliştirilmiş ve NPM paket yöneticisinin alternatifidir. Yarn önemli kılan özelliği NPM, kıyasla daha hızlı performans, bellek tasarrufu ve güvenlik sağlamasıdır.

PNPM Nedir?

Performant NPM olarak adlandırılan PNPM, yarn ve NPM tüm özelliklerine sahip ve performanslı olan paket yönetim sistemidir. PNPM, versiyon 1 2017 yılında Zoltan Kochan tarafından yayınlandı. PNPM’yi Yarn ve NPM’den ayıran özelliği bir paket yönetildikten sonra önbelleğe alır. Sonraki projelerde kullanılacaksa yerelden çekilir böylece NPM üzerinden dosyayı tekrar indirmeye ve bellek harcamasına gerek kalmayacaktır.

In the picture with black effect, the only pencil is in red. The main theme emphasizes difference.
In the picture with black effect, the only pencil is in red. The main theme emphasizes difference.

Ana Başlık Altında Farklılıkları İnceleme

NPM
-
NPM diğer paket yönetim sistemleri(PNPM, Yarn) yavaş ve güvenlik açığı riski bulunmaktadır. Node.js varsayılan paket yönetim sistemidir. NPM kullanmak için Node.js kurulu olmalıdır. NPM paketleri bağımsız olarak seri kurulum olacak şekilde gerçekleştirir. NPM, her kurulumda güvenlik kontrolü sağlar.

YARN

- NPM kıyasla hızlı, güvenlik açığını en aza indirmeye yönelik çalışmaları, hafıza dostu. Kurulan her paketi önbelleğe alarak paketin tekrar yüklenmesini ortadan kaldırıyor. Birden fazla paketi aynı anda kurabilir. NPM karşısında gerekli olan paketleri ayrı kurarak zaman, disk tasarrufu sağlıyor. Yarn sürekli güvenlik kontrolü yaparak güvenlik sorununu en aza indirmeye çalışmaktadır.

PNPM

- PNPM, Yarn ve NPM’in özelliklerinin birleşmiş hali denilebilir. PNPM, yarn ve NPM’den hızlı olduğunu iddia etmektedir. Karşılaştırma sonucuna buradan ulaşabilirsiniz. Bellekte daha az yer kaplayarak veri tasarrufu katkı sağlıyor. En önemli eksik yönü ise her uygulama PNPM desteklememektedir. Buna da dikkat edilmelidir.

Kurulum

Bilgisayarınızda NPM, Yarn, PNPM kullanmak için öncelikle node.js kurmanız gerekli. (Node.js kurulurken NPM’de kurulduğundan NPM için bir şey yapılmasına gerek yoktur.) Burada dikkat edilmesi gereken kısım Windows politikasının değiştirilmesi işlemidir. Bu ayar yapılmadığı sürece yarn ve pnpm kullanamazsınız. (Bu detay yazımızda gösterilecektir.)

NPM Kurulumu

Node.js kurulurken NPM otomatik olarak kurulduğu için NPM için bir işlem yapılmasına gerek yoktur.

Yarn Kurulumu

Bilgisayarınıza yarn kurmak için komut istemini yönetici olarak çalıştırdıktan sonra bu komutu yapıştırdıktan sonra kurulum yapılacaktır.

Komut istemi > Yönetici olarak çalıştır. Aşağıdaki kodu kopyalayıp yapıştırın.

npm install --global yarn

PNPM Kurulumu

Bilgisayarınıza pnpm kurmak için komut istemini yönetici olarak çalıştırdıktan sonra bu komutu yapıştırdıktan sonra kurulum yapılacaktır.

Komut istemi > Yönetici olarak çalıştır. Aşağıdaki kodu kopyalayıp yapıştırın.

npm install -g pnpm

Bilgisayarınıza başarılı şekilde pnpm ve yarn paket yöneticilerini kullanabilirsiniz.

Örnek Kullanım

NPM, Yarn, PNPM paketlerinin nasıl kullanılacağına örnekler.

NPM

npm install kurulacak paket adı

npm install feather-icons

Yukarıdaki örnek npm ile feather-icons paketini kurduk.

Yarn

yarn add kurulacak paket adı

yarn add react-slick

Yukarıdaki örnekte yarn ile React projesinde kullanılan React slick paketi kurduk.

PNPM

pnpm add kurulacak paket adı

pnpm add package name

Yukarıdaki örnekte pnpm ile kurulum işlemi gösteriliyor. Package name yerine kuracağınız paket ismi yazılıyor.

Windows Politikasını Değiştirme

Windows politikasını değiştirmeden yarn ve pnpm kullanmak istediğniz zaman yarn ve pnpm için bu hatalar ile karşılacaksınız.

PNPM paketi kurarken aldığım hata

Yarn ile paket kurmak istediğinizde ise bu hatayı döndürecektir.

yarn.ps1 cannot be loaded because running scripts is disabled on this system

Bu hatanın sebebi, PowerShell üzerinde çalışan komut dosyalarının (scripts) çalıştırılmasının sistemde devre dışı bırakılmış olmasıdır. Bu durum, güvenlik politikalarından kaynaklanabilir.

Execution Policy’yi Kontrol Etme

Bunun için Windows Powershell üzerinden ayar yapmamız gerekiyor.

Başlat menüsü > Powershell > Powershell sağ tık >Yönetici olarak çalıştır.

Şu komutu yazınız.

Get-ExecutionPolicy (Gerekli kodu buradan da kopyalayabilirsiniz)

Bu komut sonrası Restricted döndürüyorsa, bu durumda script çalıştırma yetkileri sınırlıdır. Daha esnek bir politika kullanmak için başka politika kullanılması gerekmektedir.

Windows Policy control
Windows politikası kontrol etme. Çalıştırılan komut sonrası Restricted döndürdü.

Şu komutu yazınız.

Change Windows Policy
Set-ExecutionPolicy RemoteSigned (Gerekli kodu buradan da kopyalayabilirsiniz)

Komut yazdıktan sonra böyle bir ekranla karşılacağız.

Windows politikası değişirken onay istemi

Klavyeden Y tuşuna basmamız yeterlidir. İşlem tamamlandıktan sonra politikanın değişikliğini kontrol etmek için şu komutu kopyalayınız.

Get-ExecutionPolicy (Gerekli kodu buradan da kopyalayabilirsiniz)
Windows Politikası başarılı şekilde değişti.

PNPM ve yarn kullanabiliriz. Aşağıdaki resimlerde yarn ve pnpm paketleri kuruluyor.

Yarn ve PNPM paketleri kuruluyor

Son Sözler

Bu yazımızda Javascript paket yönetim sistemlerinde NPM, Yarn ve PNPM inceledik. Aralarındaki farklılıklar, özellikleri ve nasıl çalıştığı, kurulum aşamaları ve uygulamalarda nasıl kullanıldığını gördük. Kullanılmadan önce yaşanılan sorunun çözümünü öğrenmiş olduk. Yazının sizlere faydalı olması dileğiyle. Yazıyı okuduğunuz için teşekkürler. İyi çalışmalar.

Kaynakça

https://chat.openai.com/

--

--