npm adalah manajer paket default untuk Node.js. Facebook telah lama mengembangkan solusi manajemen paket alternatif yang disebut Yarn . Yarn tampaknya perlahan menghilang dari readmes GitHub sebagai solusi default dan statistik di situs resmi menunjukkan bahwa hanya sebagian kecil instalasi paket yang dilakukan dengan Yarn. Namun demikian, ada baiknya melihat ke luar kotak.
Yarn sepenuhnya kompatibel dengan file package.json yang sudah ada, sehingga Anda dapat dengan mudah menggunakan kedua solusi tersebut dalam proyek yang sudah ada. Perintah untuk kedua solusi tersebut hanya sedikit berbeda. Berikut adalah perbandingan perintah-perintah terpenting.:
| Deskripsi | npm | Benang |
| Inisialisasi | npm init | benang init |
| Memperbarui | npm install -g npm | benang memperbarui diri |
| Instal paket | npm install --simpan [nama] | benang tambahkan [nama] |
| Instal paket | npm install --save-dev [nama] | benang tambahkan --dev [nama] |
| Instal paket secara global | npm install -g [nama] | benang global tambahkan [nama] |
| Instal semua paket | npm install | pemasangan benang |
| Perbarui semua paket | pembaruan npm | peningkatan benang |
| Copot pemasangan paket | npm hapus [name] | benang hapus [nama] |
Yarn dimulai dengan tujuan memecahkan beberapa masalah npm. Perbedaan yang paling jelas adalah kinerja yang lebih tinggi: melalui instalasi tambahan, multithreading dan fitur mematikan terbaru Plug'n'Play (PNP), kinerja meningkat secara dramatis. Plug'n'Play menolak gagasan folder node_modules berbasis proyek, yang seringkali dapat bertambah hingga sangat tinggi dalam jumlah file. Anda dapat mengetahui lebih lanjut tentang ini di kertas putih resmi Plug'n'Play . Kami menginstal eslint sekali dengan npm dan kemudian dengan benang dengan cache yang dihangatkan di setiap kasus untuk memperjelas perbedaan kecepatan (6x!):

