Cara Menginstal Node.js: Panduan Teknis Lengkap untuk Semua Platform
Node.js adalah runtime JavaScript open-source dan lintas platform yang dibangun di atas mesin V8 Chrome yang mengeksekusi kode JavaScript di luar lingkungan browser. Model I/O non-blocking berbasis event-driven menjadikannya pilihan utama untuk membangun API berkapasitas tinggi, aplikasi real-time, microservices, dan tooling sisi server. Menginstal Node.js dengan benar — menggunakan metode yang tepat untuk OS dan alur kerja Anda — adalah fondasi dari lingkungan pengembangan yang stabil dan dapat direproduksi.
Panduan ini mencakup setiap jalur instalasi utama: installer resmi, package manager bawaan OS, distribusi biner NodeSource, dan nvm (Node Version Manager). Panduan ini juga membahas manajemen versi, kebersihan paket global, dan pertimbangan server produksi yang sebagian besar tutorial lewatkan sepenuhnya.
Memilih Metode Instalasi yang Tepat
Sebelum menjalankan satu perintah pun, pahami apa yang sebenarnya diberikan oleh setiap metode — karena pilihan yang salah menciptakan masalah operasional nyata di kemudian hari.
| Metode | Terbaik Untuk | Fleksibilitas Versi | Root Diperlukan | Catatan |
|---|---|---|---|---|
| — | — | — | — | — |
| Installer `.pkg` / `.msi` resmi | Pengaturan lokal cepat, pemula | Satu versi saja | Ya | Mengotori PATH sistem; sulit untuk beralih versi |
| Package manager OS (`apt`, `brew`, `yum`) | Instalasi sistem-lebar, server CI | Terbatas | Ya | Sering mengirimkan versi yang sudah usang |
| Repositori biner NodeSource | Server Linux, penentuan LTS yang dapat diprediksi | Per-instalasi | Ya | Dikelola oleh NodeSource; baik untuk produksi |
| `nvm` (Node Version Manager) | Pengembangan multi-proyek | Penuh, per-shell | Tidak | Standar emas untuk workstation pengembang |
| `fnm` (Fast Node Manager) | Pipeline CI yang sensitif terhadap performa | Penuh | Tidak | Berbasis Rust, jauh lebih cepat dari nvm |
| Docker / container image | Build yang terisolasi dan dapat direproduksi | Penuh, per-container | Bergantung | Terbaik untuk microservices dan CI/CD |
Aturan keputusan utama: Pada workstation pengembang, selalu gunakan nvm atau fnm. Pada server Linux produksi, gunakan repositori NodeSource atau container image. Jangan pernah menggunakan paket Node.js dari package manager bawaan OS di Ubuntu/Debian — secara rutin mengirimkan versi yang bertahun-tahun di belakang LTS saat ini.
Menginstal Node.js di Linux
Linux adalah tempat sebagian besar beban kerja produksi Node.js sebenarnya berjalan. Melakukan ini dengan benar lebih penting di sini daripada di tempat lain mana pun. Jika Anda melakukan deployment ke lingkungan VPS Hosting, metode berikut berlaku langsung untuk server jarak jauh Anda.
Metode 1: Distribusi Biner NodeSource (Direkomendasikan untuk Server)
NodeSource memelihara paket .deb dan .rpm yang ditandatangani dan selalu diperbarui yang melacak jalur rilis LTS dan Current Node.js secara tepat. Ini adalah pendekatan paling andal untuk server Linux produksi.
Ubuntu / Debian:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejsFedora / CentOS / RHEL / Rocky Linux:
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejsSetelah instalasi, verifikasi runtime dan package manager yang disertakan:
node -v
npm -vJebakan kritis: Pola curl | bash mengeksekusi skrip jarak jauh sebagai root. Di lingkungan yang sensitif terhadap keamanan, unduh skrip terlebih dahulu, periksa, lalu eksekusi:
curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install -y nodejsMetode 2: nvm — Node Version Manager (Direkomendasikan untuk Pengembang)
nvm menginstal Node.js sepenuhnya di direktori home Anda (~/.nvm), tidak memerlukan sudo, dan memungkinkan Anda beralih versi per proyek atau per sesi shell. Ini adalah alat yang tepat untuk workstation atau server multi-tenant mana pun di mana aplikasi yang berbeda memerlukan versi Node.js yang berbeda.
Instal nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashInstaller menambahkan inisialisasi shell yang diperlukan ke ~/.bashrc, ~/.zshrc, atau ~/.profile. Muat ulang shell Anda:
source ~/.bashrcInstal rilis LTS terbaru:
nvm install --ltsInstal versi tertentu berdasarkan nomor:
nvm install 20.14.0Beralih antara versi yang terinstal:
nvm use 18
nvm use 20Tetapkan default persisten untuk sesi shell baru:
nvm alias default 20Daftar semua versi yang terinstal secara lokal:
nvm lsVerifikasi versi aktif:
node -v
npm -vKasus khusus — file .nvmrc: Tempatkan file .nvmrc di root proyek Anda yang hanya berisi string versi (misalnya, 20.14.0). Menjalankan nvm use di dalam direktori tersebut secara otomatis memilih versi yang benar. Ini sangat penting untuk lingkungan tim di mana perbedaan versi menyebabkan bug yang tidak kentara.
echo "20.14.0" > .nvmrc
nvm useMetode 3: Package Manager Sistem (Dapat Diterima untuk Tooling, Bukan Produksi)
Repositori apt atau dnf default mengirimkan versi Node.js yang sering sudah usang. Gunakan ini hanya untuk tooling yang tidak kritis:
sudo apt-get update
sudo apt-get install -y nodejs npmDi Fedora / RHEL 9+:
sudo dnf install nodejsMenginstal Node.js di macOS
Metode 1: Homebrew (Direkomendasikan)
Homebrew adalah package manager de facto untuk lingkungan pengembangan macOS. Jika Homebrew belum terinstal, ikuti instruksi di brew.sh.
brew install nodeUntuk menginstal versi mayor tertentu (misalnya, Node.js 20 LTS):
brew install node@20
brew link --overwrite node@20Verifikasi:
node -v
npm -vJebakan Homebrew: brew upgrade node akan meningkatkan ke versi terbaru, yang dapat merusak proyek yang terpaku pada rilis lama. Jika Anda mengelola beberapa proyek, gunakan nvm di macOS juga — alur kerjanya identik dengan Linux.
Metode 2: nvm di macOS
Perintah instalasi dan penggunaan nvm identik dengan Linux. Pengguna macOS dengan Zsh (default sejak Catalina) harus memastikan bahwa ~/.zshrc berisi blok inisialisasi nvm setelah instalasi:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"Metode 3: Installer .pkg Resmi
Unduh installer .pkg dari nodejs.org, jalankan, dan ikuti wizard. Ini adalah jalur paling sederhana bagi pengguna yang membutuhkan satu versi Node.js dan tidak berencana untuk beralih. Setelah instalasi, buka Terminal dan konfirmasi:
node -v
npm -vMenginstal Node.js di Windows
Metode 1: Installer .msi Resmi
Unduh installer Windows (.msi) dari nodejs.org. Pilih build LTS untuk pekerjaan yang berdekatan dengan produksi atau Current untuk bereksperimen dengan fitur terbaru. Installer mendaftarkan Node.js di PATH sistem secara otomatis.
Setelah instalasi, buka Command Prompt atau PowerShell dan verifikasi:
node -v
npm -vPenting: Selama wizard installer, ada langkah opsional untuk menginstal Chocolatey dan build tools untuk modul native (addon C++). Aktifkan ini jika dependensi proyek Anda menyertakan paket seperti bcrypt, sharp, atau modul yang bergantung pada node-gyp. Melewatinya menyebabkan kegagalan build yang membingungkan di kemudian hari.
Metode 2: Chocolatey
Chocolatey adalah package manager Windows yang memungkinkan instalasi terskrip dan dapat diulang — berharga untuk penyediaan mesin pengembang.
Buka Command Prompt atau PowerShell yang ditinggikan (Administrator):
choco install nodejs-ltsVerifikasi:
node -v
npm -vMetode 3: nvm-windows
Perhatikan bahwa nvm untuk Linux/macOS tidak berjalan di Windows. Padanan Windows adalah nvm-windows, proyek terpisah dengan antarmuka yang serupa.
Unduh installer dari halaman rilis GitHub nvm-windows. Setelah instalasi:
nvm install lts
nvm use lts
node -vWindows Subsystem for Linux (WSL2): Pengembang yang melakukan pekerjaan Node.js serius di Windows sebaiknya mempertimbangkan WSL2 dengan Ubuntu. Di dalam WSL2, instalasi nvm Linux bekerja identik dengan Linux native, dan pengalaman pengembangan jauh lebih konsisten dengan lingkungan server produksi.
Memahami LTS vs. Current: Versi Mana yang Harus Diinstal
Node.js mengikuti jadwal rilis yang dapat diprediksi yang secara langsung memengaruhi versi mana yang harus Anda deploy.
| Tipe Rilis | Kadence | Durasi Dukungan | Kasus Penggunaan |
|---|---|---|---|
| — | — | — | — |
| **LTS (Long Term Support)** | Mayor bernomor genap (18, 20, 22) | Total 30 bulan (12 Aktif + 18 Pemeliharaan) | Aplikasi produksi, beban kerja enterprise |
| **Current** | Mayor bernomor ganjil (19, 21, 23) | Hanya 6 bulan | Pengujian fitur, penulis library |
| **Maintenance LTS** | Rilis LTS yang menua | Hanya perbaikan keamanan | Sistem legacy yang sedang dimigrasikan |
Aturan umum: Selalu deploy LTS di produksi. Gunakan Current hanya di lingkungan pengembangan yang terisolasi ketika Anda perlu menguji kompatibilitas dengan fitur Node.js yang akan datang.
Menjaga Node.js Tetap Diperbarui
Versi Node.js yang sudah usang mengekspos aplikasi Anda pada kerentanan mesin V8 yang diketahui, konfigurasi TLS yang sudah tidak digunakan, dan kompatibilitas dependensi yang rusak. Perlakukan pembaruan Node.js sebagai pemeliharaan keamanan, bukan peningkatan opsional.
Dengan nvm (semua platform):
nvm install --lts
nvm reinstall-packages <old-version>
nvm alias default nodePerintah nvm reinstall-packages memigrasikan paket yang terinstal secara global dari versi lama ke yang baru — detail yang sebagian besar panduan lewatkan yang menghemat waktu yang signifikan.
Dengan NodeSource di Debian/Ubuntu:
sudo apt-get update && sudo apt-get upgrade nodejsDengan Homebrew di macOS:
brew update && brew upgrade nodeDengan Chocolatey di Windows:
choco upgrade nodejs-ltsMengelola Paket npm Global
Paket npm global menginstal alat CLI yang dapat diakses di seluruh sistem. Jaga daftar instalasi global tetap minimal — alat khusus proyek termasuk dalam devDependencies, bukan instalasi global, untuk memastikan build yang dapat direproduksi di berbagai lingkungan.
Instal paket global:
npm install -g yarn
npm install -g pm2
npm install -g typescriptDaftar semua paket yang terinstal secara global:
npm list -g --depth=0Hapus paket global:
npm uninstall -g yarnPaket global yang relevan untuk produksi:
pm2— Process manager untuk aplikasi Node.js; menangani clustering, auto-restart, dan manajemen log di server Linuxtypescript— Compiler TypeScript (tsc)nodemon— File watcher pengembangan yang secara otomatis me-restart proses Node.js saat kode berubahdotenv-cli— Memuat file.envuntuk konfigurasi spesifik lingkungan
nvm dan paket global: Saat Anda beralih versi Node.js dengan nvm, paket global yang terinstal di bawah versi sebelumnya tidak tersedia secara otomatis. Instal ulang atau gunakan nvm reinstall-packages <previous-version> untuk memigrasikannya.
Pasca-Instalasi: Mengonfigurasi npm untuk Lingkungan Produksi
Instalasi Node.js yang bersih memerlukan beberapa langkah konfigurasi tambahan sebelum siap untuk produksi.
Tetapkan registri npm (opsional, untuk registri privat atau mirror):
npm config set registry https://registry.npmjs.org/Konfigurasikan direktori cache npm (relevan di server dengan ruang /tmp yang terbatas):
npm config set cache /path/to/custom/cacheNonaktifkan pembuatan package-lock.json (hanya jika tim Anda menggunakan yarn.lock secara eksklusif):
npm config set package-lock falseTetapkan variabel lingkungan Node.js untuk produksi:
export NODE_ENV=productionTambahkan ini ke /etc/environment atau file unit systemd aplikasi Anda di server Linux untuk memastikan Express.js, Next.js, dan framework lainnya mengaktifkan optimasi produksi mereka.
Jika Anda menjalankan aplikasi Node.js di Dedicated Server, konfigurasikan pm2 sebagai layanan systemd untuk memastikan aplikasi Anda restart setelah reboot:
pm2 start app.js --name "my-app"
pm2 startup systemd
pm2 saveMenjalankan Node.js di Balik Reverse Proxy
Di server produksi, aplikasi Node.js tidak boleh pernah diekspos langsung di port 80 atau 443. Gunakan Nginx atau Apache sebagai reverse proxy, dan terminasi TLS di lapisan proxy. Ini adalah keputusan arsitektur kritis yang langsung diaktifkan oleh langkah instalasi.
Konfigurasi Nginx minimal untuk aplikasi Node.js yang berjalan di port 3000:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}Padukan ini dengan sertifikat TLS yang valid. SSL Certificates sangat penting untuk setiap aplikasi Node.js yang menangani data pengguna, token autentikasi, atau permintaan API — bukan opsional. Let’s Encrypt melalui certbot adalah opsi gratis standar; sertifikat komersial sesuai untuk deployment enterprise.
Node.js di Shared Hosting vs. VPS
Pertanyaan yang sering muncul: apakah Node.js dapat berjalan di shared hosting?
Lingkungan Shared Web Hosting standar tidak mendukung Node.js dengan cara yang berarti. Shared hosting dirancang untuk aplikasi PHP dan tidak menyediakan akses shell, manajemen proses persisten, atau kemampuan untuk mengikat ke port kustom — semua yang diperlukan Node.js.
Untuk deployment Node.js yang nyata, Anda membutuhkan setidaknya paket VPS Hosting. VPS memberi Anda akses root, process manager persisten seperti pm2, dan kontrol penuh atas versi Node.js dan konfigurasi runtime. Jika Anda membutuhkan panel kontrol yang dikelola bersama lingkungan Node.js Anda, VPS dengan cPanel menyediakan jalan tengah antara akses VPS mentah dan hosting yang dikelola.
Untuk beban kerja Node.js yang intensif secara komputasi — inferensi machine learning, transcoding video, atau pemrosesan data skala besar — VPS standar mungkin tidak cukup. GPU Hosting menyediakan akselerasi hardware yang tidak dapat dicapai oleh proses Node.js yang terikat CPU sendiri.
Daftar Periksa Teknis Poin Utama
Gunakan ini sebagai daftar periksa verifikasi pra-deployment:
- Pemilihan versi: Konfirmasi Anda menjalankan rilis LTS aktif (
node -vharus mengembalikan nomor mayor genap dalam jendela dukungan aktif) - Metode instalasi sesuai lingkungan:
nvmdi mesin pengembang; NodeSource atau container di server - Versi npm sudah terkini: Jalankan
npm install -g npm@latestsetelah menginstal Node.js — npm yang disertakan sering bukan yang terbaru NODE_ENVsudah ditetapkan: Verifikasiecho $NODE_ENVmengembalikanproductiondi semua lingkungan server- Process manager sudah dikonfigurasi:
pm2 listmenampilkan aplikasi Anda berjalan danpm2 startuptelah dieksekusi - Reverse proxy sudah terpasang: Node.js tidak diekspos langsung di port 80/443
- TLS diterminasi di proxy: Sertifikat yang valid terinstal dan pengalihan HTTPS diterapkan
- Daftar paket global minimal:
npm list -g --depth=0hanya menampilkan alat CLI yang penting .nvmrcdi-commit ke repositori: Memastikan semua anggota tim dan pipeline CI menggunakan versi Node.js yang sama- Pembaruan keamanan diotomatisasi: Cron job atau pipeline CI memeriksa patch LTS baru setiap bulan
FAQ
Apa perbedaan antara Node.js LTS dan Current, dan mana yang harus saya instal?
Rilis LTS (Long Term Support) adalah mayor bernomor genap (18, 20, 22) yang didukung selama 30 bulan dengan patch keamanan dan stabilitas. Rilis Current adalah mayor bernomor ganjil yang hanya didukung selama 6 bulan. Instal LTS untuk pekerjaan produksi atau pengembangan tim apa pun. Gunakan Current hanya untuk eksperimentasi fitur jangka pendek.
Mengapa nvm menampilkan “command not found” setelah instalasi?
Installer nvm menambahkan kode inisialisasi ke file RC shell Anda (~/.bashrc atau ~/.zshrc), tetapi sesi terminal saat ini belum memuatnya kembali. Jalankan source ~/.bashrc (atau source ~/.zshrc untuk Zsh), atau buka jendela terminal baru. Jika masalah berlanjut, verifikasi secara manual bahwa blok inisialisasi nvm ada di akhir file RC Anda.
Bisakah saya menjalankan beberapa versi Node.js secara bersamaan di server yang sama?
Ya, dengan nvm. Setiap versi diinstal di direktorinya sendiri di bawah ~/.nvm/versions/. Anda dapat beralih versi aktif per sesi shell dengan nvm use <version>, atau per proyek menggunakan file .nvmrc. Proses yang berbeda yang menjalankan versi Node.js yang berbeda dapat berdampingan tanpa konflik.
Mengapa saya tidak boleh menginstal Node.js dari repositori apt Ubuntu/Debian default?
Repositori Ubuntu dan Debian default mengirimkan versi Node.js yang sering dua hingga empat versi mayor di belakang LTS saat ini. Misalnya, Ubuntu 22.04 mengirimkan Node.js 12 secara default — versi yang mencapai end-of-life pada tahun 2022. Selalu gunakan repositori NodeSource atau nvm untuk mendapatkan rilis yang didukung dan terkini.
Bagaimana cara menghapus instalasi Node.js sepenuhnya dan memulai dari awal?
Metodenya bergantung pada cara instalasinya. Untuk instalasi NodeSource: sudo apt-get remove nodejs && sudo apt-get autoremove. Untuk nvm: nvm uninstall <version> untuk versi tertentu, atau hapus direktori ~/.nvm sepenuhnya dan hapus baris inisialisasi dari file RC Anda. Untuk Homebrew: brew uninstall node. Untuk installer resmi di macOS/Windows, gunakan uninstaller aplikasi standar sistem dan hapus secara manual direktori sisa di bawah /usr/local/lib/node_modules atau %AppData%npm.
