Thursday, September 26, 2024

Perbedaan utama antara npx dan npm

 


Perbedaan utama antara npx dan npm terletak pada tujuan dan cara mereka digunakan dalam mengelola serta menjalankan paket-paket di ekosistem Node.js.

1. npm (Node Package Manager):

  • Fungsi utama: npm adalah alat yang digunakan untuk mengelola paket Node.js. Dengan npm, Anda bisa menginstal, memperbarui, dan menghapus paket atau modul dari registry npm.
  • Cara kerjanya:
    • Menginstal paket: Dengan perintah seperti npm install package-name, paket akan diinstal ke dalam folder node_modules proyek Anda.
    • Global atau lokal: Paket bisa diinstal secara global (di seluruh sistem) atau secara lokal (hanya di proyek tertentu).
    • Menjalankan skrip: Anda juga bisa menggunakan npm untuk menjalankan skrip yang didefinisikan di file package.json.

Contoh penggunaan npm:

npm install express         # Menginstal paket express secara lokal
npm install -g typescript   # Menginstal TypeScript secara global
npm run build               # Menjalankan skrip "build" dari package.json
 

2. npx (Node Package Executor):

  • Fungsi utama: npx digunakan untuk menjalankan paket Node.js tanpa perlu menginstal paket tersebut secara permanen di proyek atau sistem. Ini adalah alat yang berguna untuk mengeksekusi perintah yang disediakan oleh paket npm, terutama untuk paket CLI (Command Line Interface).
  • Cara kerjanya:
    • Eksekusi langsung: Dengan npx, Anda bisa mengeksekusi paket yang belum terinstal di sistem Anda. Jika paket belum ada, npx akan mengunduh dan menjalankannya secara sementara, kemudian menghapusnya setelah eksekusi selesai.
    • Menggunakan versi lokal: Jika paket sudah diinstal secara lokal di proyek Anda (di dalam folder node_modules), npx akan menggunakan versi tersebut.
    • Membantu menghindari instalasi global: Dengan npx, Anda tidak perlu menginstal paket CLI secara global (yang bisa membuat sistem lebih sulit di-manage). Anda bisa langsung menjalankan perintah tanpa perlu global install.

Contoh penggunaan npx:

npx create-react-app my-app   # Menjalankan create-react-app untuk membuat proyek React baru tanpa menginstalnya secara global
npx prisma init               # Menjalankan Prisma CLI untuk inisialisasi Prisma tanpa instalasi global
npx eslint .                  # Menjalankan ESLint untuk linting kode secara langsung