Npm ve Yarn Arasındaki Farklılıklar?
Öncelikle bunların ne işe yaradığından bahsedeyim.
Yarn ve Npm birer Javascript package managerlerdir. Yani 3. parti yazılımları yüklememizi onlara erişmemizi sağlarlar.
Bu konuyu biraz daha açarsak geliştirme platformunu sağlayan şirketin haricinde ki kişiler ve şirketler tarafından sağlanan yazılımlardır.
Kısacası asıl bir amaç için üretilen platformun geliştirilmesini sağlayan dışardan sağlanan yazılımlardır.
Örneğin bilgisayarlarımıza yüklediğimiz oyunlar birer 3. parti uygulamadır ama bilgisayarımızda hali hazırda yüklü olarak gelen oyunlar direkt olarak Microsoft tarafından geliştirilip koyulduğu için 3. parti yazılımlara girmez.
Yarn ve Npm de React-Native, Angular, Node.js gibi platformlarda dışardan hazır bir şekilde kütüphane eklemek için kullandığımız araçlardır. Her ikisi de komut satırlarıyla yazılan kodlarla çalıştırılmaktadır.
Cli (Comman Line Interface) alanında yazılan satırlarla istediğimiz yazılımları istediğimiz platforma kaydetme imkanına sahibiz.
Angular’da npm ile kurulum örneği:
npm install -g angular-cli
Buradaki g global kısaltılmış hali olarak gösterilmiştir. Burada ilk baştaki genel yükleme olduğu için böyle bir gösterimde bulunulmuştur.
React-Native’de react-native-elements kütüphanesinin yarn ve npm ile kurulum örneği:
yarn add react-native-elements
npm i react-native-elements –save
Gördüğünüz gibi burada en temel yazım farkı yarn için add kullanması ve npm içinde install kullanılmasıdır (Bu sürümde gördüğünüz gibi npm sonuna –save ibaresi almıştır. Çünkü npm otomatik olarak kaydetmemekteydi ama günümüz sürümlerinde buna gerek kalmamıştır.)
Yarn geliştiricileri Facebook, Google, Exponent, Tilde gibi küresel ölçekli şirketlerdir. Ancak Npm Isaac N. Schlueter tarafından Node.js için geliştirilmiştir.
Günümüzde Javascript temelli çalışan programların artması sonucuyla büyük şirketlerin bu alana yönelmiş olması bu alanda rekabeti arttırmıştır. Yarn da bunun bir örneğidir.
Yarn’ın Getirdikleri
Yarn bütün paketleri önbelleğe yazar. En önemlisi paketleri eşzamanlı bir şekilde yükler ama Npm bunları sırayla yapmaktaydı. Burada Yarn hız olarak Npm’in önüne geçmektedir. Çünkü büyük çaplı projeler de bu zaman gerçekten önemli bir handikap olmaktadır.
Bunun yanı sıra Yarn yeni bir araç olduğu için Node.js version 5 ten daha eski sürümlerle çalışamamaktadır. Önemli dezavantajlarından birisi de native modüllerde Yarn daha çok iş çıkartabilmektedir.
Sonuç olarak,
Yarn, Npm’e göre daha yeni olmasına rağmen sağladığı avantajlarla Npm’in önüne geçivermiştir.
Günümüzde bir çok program geliştirici Npm’i bırakıp Yarn’ı kullanmaya başlamıştır bile. İlerleyen zamanlarda Yarn’ın etkinliği giderek artacaktır.