Paket yöneticisi, proje ortamları oluşturmak ve dış bağımlılıkları kolayca içe aktarmak için bir araçtır. Bir paket yöneticisi kullanarak, proje ortamındaki bağımlılıkları yükleme, yükseltme, yapılandırma ve kaldırma sürecini otomatikleştirebiliriz.
NPM, Inc tarafından sağlanan düğüm paket yöneticisi olarak bilinir. NPM, JavaScript geliştiricileri arasında popüler paket yöneticisidir. Node.js'yi sistemimize her kurduğumuzda otomatik olarak yüklenen varsayılan pakettir. NPM
Facebook tarafından 2016 yılında geliştirilen YARN paket yöneticisidir. JavaScript programlama dili için başka bir paket yöneticisidir. Yarn, NPM'ye alternatif olarak hız, tutarlılık, kararlılık ve güvenlik sağlar.YARN
NPM ve Yarn arasındaki temel fark, paket kurulum sürecidir. Yarn paketleri paralel olarak kurar. Yarn, aynı anda birden fazla paketi almak ve kurmak için optimize edilmiştir.
NPM, bir seri kurulum işlemi gerçekleştirir. Her paketi bağımsız olarak kurar.
Yani bu durumda Yarn, NPM'den daha hızlı bir kurulum sürecine sahiptir.
NPM paket yöneticisi, her kurulumda bir güvenlik kontrolü gerçekleştirmektedir. Yarn, projenizin bağımlılıklarıyla çakışabilecek hileli komut dosyaları ve diğer dosyaları indirmediğinizden emin olmak için perde arkasını sürekli kontrol eder. Güvenlik, Yarn'ın temel özelliklerinden biridir.
NPM ve Yarn paket yöneticilerinin her ikisi de kullanıcı dostudur ve iyi bir kullanıcı deneyimine sahiptir.
NPM => npm
Yarn => yarn
NPM => npm install
Yarn =>yarn
NPM => npm install package --save
Yarn => yarn add package
NPM => npm install package --save-dev
Yarn => yarn add package --dev
NPM => npm uninstall package --save
Yarn => yarn remove package
NPM => npm update --save
Yarn => yarn upgrade
NPM - npm install package -g
Yarn - yarn global add package
Kaynak: https://dev.to/samithawijesekara/the-difference-between-npm-and-yarn-2j3p