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 foldernode_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 filepackage.json
.
- Menginstal paket: Dengan perintah seperti
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.
- Eksekusi langsung: Dengan
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