npm, Node.js için varsayılan paket yöneticisidir. Facebook uzun süredir Yarn adında alternatif bir paket yönetimi çözümü geliştiriyor. Yarn, varsayılan çözüm olarak GitHub okumalarından yavaş yavaş kayboluyor gibi görünüyor ve resmi sitedeki istatistikler, Yarn ile paket kurulumlarının yalnızca bir kısmının gerçekleştirildiğini gösteriyor. Yine de kutunun dışına bakmaya değer.
Yarn, mevcut package.json dosyalarıyla tamamen uyumludur, bu nedenle her iki çözümü de mevcut projelerinizde kolaylıkla kullanabilirsiniz. İki çözümün komutları yalnızca küçük farklılıklar gösterir. Aşağıda en önemli komutların karşılaştırması yer almaktadır.:
| Açıklama | npm | İplik |
| Başlat | npm init | iplik girişi |
| Güncelleme | npm yükleme -g npm | kendi kendini güncelleme |
| Kurulum paketi | npm yükleme --save [ad] | iplik ekle [isim] |
| Kurulum paketi | npm yükleme --save-dev [ad] | iplik eklemek --dev [ad] |
| Paketi global olarak yükleyin | npm install -g [ad] | iplik global ekle [ad] |
| Tüm paketleri kurun | npm yükleme | iplik kurulumu |
| Tüm paketleri güncelleyin | npm güncellemesi | iplik geliştirme |
| Paketi kaldırın | npm [ad] kaldır | iplik çıkarma [isim] |
Yarn, npm'nin bazı sıkıntılı noktalarını çözme hedefiyle işe başladı. En belirgin fark, daha yüksek performanstır: artımlı kurulumlar, çoklu iş parçacığı kullanımı ve en son harika Tak'n'Çalıştır (PNP) özelliği sayesinde performans önemli ölçüde artar. Plug'n'Play, dosya sayısında sıklıkla astronomik boyutlara ulaşabilen proje tabanlı node_modules klasörü fikrini reddeder. Bu konuda daha fazla bilgiyi resmi Plug'n'Play teknik incelemesinde bulabilirsiniz. Hız farkını netleştirmek için eslint'i bir kez npm ile ve ardından önbellek ısınmış olarak iplik ile kuruyoruz (6x!):

