Onur Dayıbaşı

CV
none

NPM Nedir ?

NPM(Node Package Manager) isminden de anlaşıldığı üzere node modülleri ortak bir yerde kaydedilmesi ve kullanılması için oluşturulmuş node modül yöneticisidir. Zamanla node modüllerinin webpack ve babel gibi araçlar sayesinde frontend kütüphaneleri içinde kullanılabilir hale gelmiştir. Javascript hem browser, hem sunucu, hem geliştirici hemde desktop uygulamalarında kullanılabilir hale gelmiştir.

Önceden Javascript sadece browser üzerinde web sayfaları çalıştırılırken tek bir kütüphane ile (YUI, Mootools, ExtJS, JQuery) ve bunların pluginleri yeterken. İlerleyen gelişmeler ile birlikte daha büyük projeler için bu yetersiz hale gelmiş artık irili ufaklı bir çok modülün birbirini kullandığı yapılara ihtiyaç vardır. Bunun için bu modüllerin ortak bir yerde bulunması ve buradan kullanılması ihtiyacı doğmuştur. Bu ihtiyacı npm sağlamıştır.

Aslında bu tip modül paylaşım ihtiyaçları diğer diller içinde vardı ve çok daha öncesinden beri kullanılmaktadır. Örneğin Maven, Gopm, Rubygems.org vb paket yönetim araçları http://www.modulecounts.com/ adresinden gelişimini görebilirsiniz. Tabiki bu modül sayıları ve artışı bu paketlerin kalitesini göstermesede dillere olan ilgiyi göstermesi açısından önemli bir kaynaktır.

Module Counts

Bower, Npm, Yarn Arasında Ne Gibi Farklar Bulunur?

Peki React ile birlikte Yarn veya daha önceden kullandığımız Bower nedir ? Bunlarda JS paket yöneticisi fakat dönemleri ve yapılma amaçları farklı.

Örneğin Bower Frontend JQuery, Masory vb diğer frontend kütüphanelerini index.html üzerine el ile kendinizin download edip bir paket altına koyup index.html içerisinden kendimiz link veriyorduk. Npm Bower sisteme yükledikten sonra el ile bu paketleri download etmek yerine bower kullanıp bunların bower.json üzerinden bower_components altında yüklenmesi sağlanır.

Sonrasında ise aşağıdaki şekilde ilgili link verilebilir. veya Grunt, RequireJS ile ilgili kütüphaneler sisteme yüklenebilir.

1<script src="bower_components/jquery/dist/jquery.min.js"></script>

Npm ve Yarn modern frontend kullanılabilir olmasından sonra yönelim bowerdan bu 2 paket yöneticisinde yönelmiştir. npm 2011 çıkışlı , Yarn ise Facebook tarafından npm bir takım problemleri gidermek için geliştirdikleri npm üzerinde çalışan bir araç.

  • Hız
  • Güvenlik
  • Offline

Yarn hız ve güvenlik olayları yanında yarn.lock dosyası ile proje bağımlılıklarını daha iyi bir şekilde yönetecek şekilde geliştirilmiş ve bundan dolayı bir çok yerde tercih edilmiştir. NPM versiyon 5 sonra Yarn benzer özelliklerini yapısına dahil ettiği ve bağımlılık problemini benzer şekilde package-lock.json . içerisinde çözmüştür.

Bundan dolayı halen npm ve yarn en çok tercih edilen paket yöneticileridir.

Referanslar