Belajar Nodejs: Apa itu NPX? dan Apa Perbedaannya dengan NPM?
Saat pertama kali melihat npx
,
saya kira itu typo dari npm
.
Ternyata tidak…
NPM dan NPX adalah dua tool yang memiliki fungsi berbeda.
Apa saja perbedaannya?
…dan kapan kita harus menggunakan NPX?
Mari kita bahas?
NPM vs NPX
NPM adalah singkatan dari Node Package Manager. Sebuah program berbasis teks untuk manajemen paket Nodejs.
Sedangkan NPX adalah Node Package Runner. Fungsinya untuk mengeksekusi package Nodejs.
NPX akan mengeksekusi file binary dari package Nodejs, baik yang sudah terinstal maupun yang belum.
Bahkan NPX juga bisa membantu kita menggunakan Nodejs versi tertentu tanpa harus menggunakan nvm (nodejs version management), nave (nodejs virtual environment), dan n (nodejs version management). 1
Instalasi NPX
NPX mulai ditambahkan pada NPM versi 5.2.0
.
Jadi, apabila kamu menggunakan NPM versi ini,
maka tidak perlu menginstal npx
.
Tapi kalau di komputermu belum terinstal, kamu bisa menginstalnya dengan perintah:
[sudo] npm install -g npx
Gunakan sudo
apabila kamu menginstal
Nodejs pada root direktori.
Cara Menggunakan NPX
Cara menggunakan NPX hampir sama seperti NPM.
Untuk daftar opsi dan argumen yang lainnya,
kamu bisa melihat dengan bantuan npx
.
Silakan ketik perintah:
npx --help
Untuk melihat bantuan.
Mari kita coba menggunakan npx
…
npx happy-birthday -u "Petani Kode"
Perhatikan, happy-birthday
adalah nama package yang
akan kita eksekusi. Lalu -u "Petani Kode"
adalah
argumen untuk package happy-birthday
.
Argumen ini bisa kita dapatkan dengan membaca readme dari package ini di website npmjs.
Package happy-birthday
adalah package
yang berfungsi untuk menampilkan teks
"Selamat ulang tahun"
dengan berbagai
macam bahasa.
Hasilnya:
Kapan Kita Harus Menggunakan NPX?
NPX bisa kita gunakan untuk beberapa kasus seperti ini:
1. Saat Ingin Eksekusi Sekali Saja
Kita mungkin hanya membutuhkan sebuah package nodejs untuk dieksekusi sekali saja.
Contoh:
Package create-react-app
untuk membuat
project aplikasi React.
Maka Kita bisa menggunakan perintah:
npx create-react-app nama-project
2. Saat Ingin Eksekusi Script dari Gist
NPX bisa kita gunakan untuk mengeksekusi script dari Gist.
Gist adalah layanan Github untuk menyimpan script seperti pastebin.
Mari kita coba mengeksekusi script dari Gist dengan NPX.
Saya akan menggunakan script yang sudah dipersiapkan.
Cobalah ketik perintah berikut:
npx https://gist.github.com/ardianta/df9a4c8be44b5d5f4bb1b67cdd13f4ea
Maka hasilnya:
3. Saat Ingin Menggunakan Versi Package yang Berbeda
Kada kita bekerja di sebuah project yang menggunakan package versi berbeda dari yang terinstal di komputer kita.
Di sini kita bisa memanfaatkan NPX untuk menggunakan versi package yang sesuai dengan project tersebut.
Untuk menentukan versi package, kita cukup
menambahkan @1.2.3
di belakang nama package.
1.2.3
adalah versi package yang akan digunakan.
Contoh:
Saat ini gulp
sudah mencapai versi 4.0.1
,
tapi saya ingin menggunakan gulp versi 3.9.0
.
Maka saya harus mengetik:
npx [email protected] --version
Argumen --version
adalah argumen untuk mengecek
versi gulp
.
Oh iya, gulp ini adalah build tool. Kamu bisa baca tutorial gulp di sini.
Hasilnya:
4. Saat Kita tidak Memiliki akses root
Kadang kita akan menemukan, saat-saat di mana kita tidak diberikan izin untuk menginstal package Nodejs secara global.
Misalnya, di sebuah server. Kita hanya diberikan izin menggunakannya sebagai user biasa saja.
Lalu untuk menginstal package Nodejs secara global di sana, kita membutuhkan akses root.
Tapi sayangnya kita tidak punya akses tersebut.
Nah di sinilah kita bisa menggunakan npx
.
Shell auto-fallback dengan NPX
Pernah menemukan seperti ini?
Kita ingin menjalankan perintah webpack
,
akan tetapi perintah tersebut belum terinstal
di komputer.
Di sana kita disarankan untuk mengetik perintah:
sudo apt install webpack
Ini adalah shell-auto fallback.
Shell auto-fallback adalah perintah yang akan dikerjakan ketika sebuah perintah tersebut tidak ditemukan.
NPX memiliki fitur shell-auto fallback. Cara mengaktifkannya:
Untuk shell bash:
source <(npx --shell-auto-fallback bash)
Untuk shell zsh:
source <(npx --shell-auto-fallback zsh)
Untuk shell fish:
source (npx --shell-auto-fallback fish | psub)
Mari kita coba…
Pertama kita mendaftarkan NPX sebagai shell-auto fallback pada bash (karena saya menggunakan bash) dengan perintah:
source <(npx --shell-auto-fallback bash)
Lalu saya mencoba mengeksekusi perintah [email protected]
dan happy-birthday
.
Oh iya, ketika saya mengetik happy-birthday
saja…
…shell auto-fallback-nya tidak bekerja.
Mungkin ini agar tidak bentrok dengan perintah linux yang lainnya.
Sebenarnya, perintah:
npx --shell-auto-fallback bash
Akan menghasilkan sebuah kode bash untuk auto-fallback.
Ini bisa kita simpan ke dalam file .bashrc
agar permenen.
Menjalankan Server dengan NPX
NPX juga bisa kita gunakan untuk menjalankan server.
Kamu bisa coba dengan package nodejs untuk membuat
server seperti nodemon
, json-server
, dan lain-lain.
Akhir Kata…
Sejauh ini kita sudah mengenal fungsi npx
.
NPX adalah nodejs package runner untuk mengeksekusi package nodejs. Sedangkan NPM adalah node package manager untuk mengelola package dan proyek nodejs.