npm vs Yarn - Package Manager mana yang harus Anda gunakan?

date 15 Oct 2019
date Lev Yasin
date 4764
date Web Programming
npm vs Yarn - Package Manager mana yang harus Anda gunakan?

npm dan Yarn adalah dua pengelola paket JavaScript yang terkenal. Jika Anda tidak terbiasa dengan apa yang dilakukan Package Manager, ini pada dasarnya adalah cara mengotomatiskan proses menginstal, memperbarui, mengonfigurasi, dan menghapus potongan perangkat lunak (paket AKA) yang diambil dari registri global. Dalam posting ini, kita akan membahas perbedaan yang ada antara dua pengelola paket JavaScript paling populer - npm dan Yarn.

Apa itu npm?

The JavaScript node package manager , biasanya disingkat dalam semua huruf kecil sebagai npm, adalah metode default untuk mengelola paket di lingkungan runtime Node.js. Itu bergantung pada baris perintah dan database yang terdiri dari paket publik dan premium yang dikenal sebagai registri npm. Pengguna dapat mengakses registri melalui klien dan menelusuri banyak paket yang tersedia melalui situs web npm. NPM dan registrinya dikelola oleh npm, Inc.

Apa itu Yarn?

Yarn dikembangkan oleh Facebook dalam upaya untuk menyelesaikan beberapa kekurangan npm. Secara teknis, Yarn bukan pengganti npm karena bergantung pada modul dari registri npm. Yarn sebagai new installer yang masih mengandalkan struktur npm yang sama . Registri itu sendiri tidak berubah, tetapi metode instalasi berbeda. Karena Yarn memberi Anda akses ke paket yang sama dengan npm, pindah dari npm ke Yarn tidak mengharuskan Anda untuk membuat perubahan apa pun pada alur kerja Anda.

Cara Install npm

npm didistribusikan dengan Node.js sehingga setelah Anda mengunduh Node.js, lalu akan secara otomatis menginstal npm dan siap digunakan.

Setelah Node.js diinstal, gunakan perintah berikut untuk memastikan instalasi berhasil:

node -v
npm -v

Cara Install Yarn

Anda memiliki dua opsi. Jika Anda ingin menginstal Yarn menggunakan npm, masukkan perintah berikut:

npm install yarn --global

Namun Developer menyarankan agar tidak menggunakan npm untuk menginstal Yarn. Alternatif yang lebih baik adalah menginstal Yarn menggunakan manajer paket OS asli Anda. Misalnya, jika Anda menggunakan di pada Mac, Anda bisa memasukkan:

brew update

brew install yarn

Jika Anda ingin mencoba Yarn pada proyek npm yang ada, silahkan coba :

yarn

Anda kemudian akan melihat folder node_modules  ditampilkan menggunakan algoritma resolusi Yarn.

Membandingkan Benang vs npm

Yarn memiliki beberapa karakteristik yang membedakannya dari npm (terutama versi npm sebelum 5.0). Beberapa di antaranya adalah sebagai berikut.

File yarn.lock

Mengelola versi di package.json kadang-kadang bisa berantakan. Namun, file yarn.lock membantu meringankan kekacauan yang ada. Setiap kali Anda menambahkan modul baru, Yarn memperbarui file yarn.lock. Mirip dengan fitur Gemfile.lock di Ruby, file yarn.lock memastikan bahwa paket yang sama persis diinstal pada setiap perangkat . Lockfiles ini disebut demikian karena mereka "lock" dependensi ke versi spesifik selama instalasi. Lockfile terdiri dari kunci yang diorder untuk memastikan perubahan minimal pada struktur file di node_modules.

Dalam versi npm sebelumnya, hal yang sama dilakukan dengan perintah shrinkwrap. Namun, file shrinkwrap tidak dapat dibuat secara otomatis, dan itu membutuhkan pemeliharaan berkelanjutan. npm telah diperbaiki pada npm-shrinkwrap dengan pengenalan file package-lock.json. Karena file yarn.lock menangani semuanya secara otomatis, itu berarti lebih sedikit pekerjaan untuk Anda.

Instalasi Paket

Saat memasang Package, npm melakukan langkah-langkah yang diperlukan secara berurutan, artinya setiap package harus diinstal sepenuhnya sebelum pindah ke yang berikutnya. Namun, Yarn memiliki kemampuan untuk melakukan beberapa langkah instalasi sekaligus, yang mempercepat proses secara drastis.

lev_yasin.png

Lev Yasin

Instruktur Web Programming Mataweb

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.

Artikel Terkait

Halo, ada yang bisa kami bantu?