GNU/Linux >> Belajar Linux >  >> Ubuntu

Benang vs NPM:Perbandingan Komprehensif

Pendahuluan

Yarn dan NPM adalah dua manajer paket Node.js yang paling populer. Mereka mengizinkan pengunduhan, penginstalan, dan pengelolaan paket saat mengembangkan dalam JavaScript.

Dalam tutorial ini, kita akan membandingkan Benang dan NPM, mempertimbangkan kinerjanya, kemudahan penggunaan, keamanan, dan fitur yang disediakannya.

Benang vs. NPM:Definisi

Benang (Negosiator Sumber Daya Lain) dan NPM (Pengelola Paket Node) adalah manajer paket yang digunakan untuk pengkodean JavaScript. Mereka bekerja dengan Node.js , yang berfungsi untuk membantu pengguna mengembangkan dan menjalankan kode JavaScript di luar browser web.

Node.js menggunakan sejumlah besar paket dan pustaka sumber terbuka untuk membuat pengkodean lebih mudah dan efisien. Manajer paket seperti Yarn dan NPM memungkinkan pengguna menginstal, mengelola, memperbarui, dan menghapus paket, pustaka, dan dependensi dengan mudah.

Apa itu Benang?

Facebook mengembangkan Yarn pada tahun 2016 sebagai pengganti NPM. Itu dirancang untuk menawarkan fitur yang lebih canggih yang tidak dimiliki NPM pada saat itu (seperti penguncian versi) dan menciptakan produk yang lebih aman, stabil, dan efisien.

Namun, sejak Yarn dirilis, NPM telah menambahkan beberapa fitur penting. Dalam kondisinya saat ini, Benang sekarang lebih merupakan alternatif untuk NPM daripada pengganti.

Apa itu NPM?

NPM adalah manajer paket default untuk Node.js dengan alat CLI yang membantu menginstal, mengelola, dan menghapus paket Node.js. Ini juga memungkinkan pengguna untuk berbagi paket Node.js open-source.

Benang vs. NPM:Perbandingan

Di bawah ini adalah garis besar beberapa persamaan dan perbedaan antara Benang dan NPM.

Pemasangan

Kami akan mulai dengan membandingkan proses instalasi untuk Benang dan NPM:

Benang

Untuk mulai menggunakan Yarn, Anda perlu menginstalnya menggunakan penginstal MSI dari situs web resmi atau pengelola paket seperti Chocolatey, Scoop CLI, atau NPM itu sendiri. Pelajari lebih lanjut di panduan kami untuk menginstal Yarn di Windows dan menginstal Yarn di Ubuntu 18.04.

NPM

NPM disertakan secara default dengan instalasi Node.js dan tidak memerlukan langkah tambahan untuk menginstal. Untuk mempelajari lebih lanjut tentang menginstal Node.js dan NPM, lihat salah satu panduan kami:

  • Cara Menginstal Node.js &NPM di Ubuntu 18.04 dan 20.04
  • Cara Menginstal Node.js dan NPM di CentOS 7
  • Cara Memasang Node.js dan NPM di Windows
  • Cara Memasang Node.js dan NPM di Mac

Ketergantungan

Benang

Yarn versi 1 dan NPM keduanya mengelola dependensi dengan cara yang sangat mirip. Keduanya menyimpan metadata proyek di package.json file, terletak di node_modules folder di dalam direktori proyek.

Mulai dari versi 2, Benang tidak lagi menggunakan node_modules folder untuk melacak dependensi. Sebagai gantinya, Benang 2.0 menggunakan Plug'n'Play fitur, yang menghasilkan satu .pnp.cjs mengajukan. File ini berisi peta hierarki ketergantungan untuk sebuah proyek.

Benang menggunakan yarn perintah untuk menginstal dependensi. Ini menginstal dependensi secara paralel, memungkinkan Anda untuk menambahkan beberapa file secara bersamaan.

Menginstal dependensi secara otomatis membuat file kunci yang menyimpan daftar persis dependensi yang digunakan untuk proyek tersebut. Dengan Yarn, file ini disebut yarn.lock .

NPM

NPM menginstal dependensi menggunakan npm install memerintah. Dependensi dipasang secara berurutan, satu demi satu.

NPM juga membuat file kunci versi bernama package-lock.json . Benang juga mendukung package-lock.json file, memungkinkan pengguna untuk memigrasikan data versi dari NPM ke Yarn.

Kecepatan dan Performa

Seperti disebutkan di atas, sementara NPM menginstal paket dependensi secara berurutan, Yarn menginstal secara paralel. Karena itu, Yarn bekerja lebih cepat daripada NPM saat menginstal file yang lebih besar.

Kedua alat juga menawarkan opsi untuk menyimpan file ketergantungan di cache offline. Hal ini memungkinkan pengguna untuk menginstal dependensi bahkan jika mereka sedang offline.

Selain itu, mulai dari versi 2, Yarn menggunakan Zero install fitur. Fitur ini mengambil peta ketergantungan dari .pnp.cjs file dan menggunakannya untuk melakukan instalasi ketergantungan offline dengan hampir nol penundaan.

Keamanan

Benang

Benang melakukan pemeriksaan keamanan sebagai proses latar belakang saat mengunduh paket. Ia menggunakan informasi lisensi paket untuk memastikannya tidak mengunduh skrip berbahaya atau menyebabkan konflik ketergantungan.

Kedua alat tersebut menggunakan protokol enkripsi untuk memastikan transfer data yang aman. Benang memverifikasi paket dengan checksum, sementara NPM menggunakan SHA-512 (Algoritma Aman Hash) yang disimpan di package-lock.json berkas.

NPM

Ancaman keamanan adalah masalah yang signifikan dalam versi awal NPM. Pada versi 6, NPM melakukan audit keamanan setiap kali Anda menginstal sebuah paket. Ini membantu mencegah kerentanan dan memastikan tidak ada ketergantungan yang saling bertentangan.

Anda juga dapat menjalankan audit manual dengan menggunakan npm audit memerintah. Jika NPM menemukan kerentanan, gunakan npm audit fix harus menyelesaikan masalah.

Kemudahan Penggunaan

Baik Yarn maupun NPM relatif mudah digunakan, terutama mengingat mereka berbagi beberapa perintah. Keluaran perintah umumnya mudah dibaca dan dipahami, meskipun dapat menjadi kurang dapat dibedakan secara visual saat menginstal sejumlah besar paket.

Kedua manajer paket menawarkan mode interaktif yang membantu pengguna menyiapkan proyek baru. Di Yarn, mode ini diaktifkan secara default, sedangkan NPM memerlukan npm-upgrade paket untuk mengaktifkan interaktivitas.

Fitur

Benang dan NPM memiliki beberapa kesamaan fitur utama:

  • Membuat file kunci: Kedua manajer paket secara otomatis membuat file kunci versi. Dengan Yarn, file ini disebut yarn.lock , sementara NPM menamai file tersebut package-lock.json .
  • Menggunakan ruang kerja: Baik Yarn maupun NPM mendukung ruang kerja, memungkinkan Anda menggunakan satu repositori untuk mengelola dependensi untuk beberapa proyek.
  • Skrip jarak jauh: Baik NPM dan Yarn memungkinkan Anda menjalankan skrip dari jarak jauh, menggunakan npx perintah di NPM dan yarn dlx perintah di Benang.

Fitur eksklusif untuk Benang:

  • Plug'n'Play: Alih-alih menggunakan node_modules folder, Benang menghasilkan satu .pnp.cjs file yang memetakan dependensi proyek. Hal ini memungkinkan pohon dependensi yang lebih optimal serta startup proyek dan instalasi paket yang lebih cepat.
  • Pemasangan nol: Fitur ini terkait dengan Plug'n'Play , menggunakan .pnp.cjs file untuk memetakan paket yang disimpan dalam cache offline. Ini memungkinkan Anda untuk mengakses dan menginstal paket yang disimpan hampir tanpa penundaan.
  • Pemeriksaan lisensi: Yarn memiliki fitur pemeriksa lisensi bawaan saat mengunduh dan menginstal paket.

Perintah

Tabel di bawah ini memberikan ikhtisar dari beberapa perintah yang paling sering digunakan untuk NPM dan Yarn:

Perintah NPM Benang
Inisialisasi proyek npm init yarn init
Jalankan pengujian untuk paket saat ini npm test yarn test
Periksa paket yang kedaluwarsa npm outdated yarn outdated
Publikasikan paket npm publish yarn publish
Jalankan skrip npm run yarn run
Kelola cache paket lokal npm cache clean yarn cache clean
Masuk atau keluar npm login/logout yarn login/logout
Instal dependensi npm install yarn
Instal paket npm install [package name] yarn add [package name]
Copot pemasangan paket npm uninstall [package name] yarn remove [package name]
Perbarui pengelola npm update yarn upgrade
Perbarui paket npm update [package name] yarn upgrade [package name]
Instal paket secara global npm install --global [package name] yarn global add [package name]
Copot pemasangan paket secara global npm uninstall --global [package name] yarn global remove [package name]
Pembaruan ketergantungan interaktif npm run upgrade-interactive yarn upgrade-interactive
Jalankan paket dari jarak jauh yarn dlx
Periksa lisensi yarn licenses ls

Benang vs. NPM:Cara Memilih

Sangat penting untuk mempertimbangkan keuntungan dan kerugian dari NPM dan Benang saat memutuskan mana yang akan digunakan.

Benang

Keuntungan

  • Mendukung penginstalan paralel dan penginstalan Nol, keduanya meningkatkan performa secara dramatis.
  • Versi Benang yang lebih baru menawarkan bentuk penguncian versi yang lebih aman.
  • Komunitas pengguna aktif.

Kerugian

  • Benang tidak berfungsi dengan versi Node.js yang lebih lama dari versi 5.
  • Benang menunjukkan masalah saat mencoba memasang modul asli.

NPM

Keuntungan

  • Mudah digunakan, terutama bagi pengembang yang terbiasa dengan alur kerja versi lama.
  • Penginstalan paket lokal dioptimalkan untuk menghemat ruang hard drive.
  • UI yang sederhana membantu mengurangi waktu pengembangan.

Kerugian

  • Pendaftaran NPM online dapat menjadi tidak dapat diandalkan jika terjadi masalah kinerja. Ini juga berarti bahwa NPM memerlukan akses jaringan untuk menginstal paket dari registri.
  • Meskipun ada serangkaian peningkatan di berbagai versi, masih ada kerentanan keamanan saat menginstal paket.
  • Keluaran perintah mungkin sulit dibaca.

Putusan

Mempertimbangkan semua hal di atas, NPM lebih baik untuk pengembang yang terbiasa dan puas dengan alur kerjanya saat ini. Ini memberikan pengalaman pengguna yang cukup efisien sekaligus menghemat ruang hard drive.

Di sisi lain, Yarn menawarkan fitur yang lebih canggih, seperti pemasangan Plug'n'Play dan Zero. Ini juga memberikan kinerja dan keamanan yang sedikit lebih baik tetapi dengan mengorbankan ruang hard drive.


Ubuntu
  1. Cara Memasang Benang di Ubuntu 18.04

  2. Instal npm di Ubuntu 16.04

  3. Perbandingan tanggal di Bash

  1. PostgreSQL Vs MySQL:Perbandingan Mendetail

  2. Bagaimana Cara Menginstal Benang di Ubuntu 20.04?

  3. Cara Menginstal Yarn NPM Package Manager di Oracle Linux 8

  1. Hadoop vs Spark – Perbandingan Mendetail

  2. Apache vs Nginx - Perbandingan Mendetail

  3. Virtualbox vs VMware:Perbandingan Head-to-Head