15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
09.10.2024

Cara Menginstal dan Mengkonfigurasi Node.js dan NPM di Windows

Node.js adalah runtime JavaScript open-source dan lintas platform yang dibangun di atas mesin V8 Chrome yang mengeksekusi kode JavaScript di luar browser. NPM (Node Package Manager) adalah manajer paket default yang disertakan dengan Node.js, menyediakan akses ke lebih dari dua juta paket yang dapat digunakan kembali. Bersama-sama, keduanya membentuk toolchain dasar untuk membangun aplikasi sisi server, alat CLI, REST API, dan proyek JavaScript full-stack di Windows.

Panduan ini mencakup alur kerja instalasi, verifikasi, konfigurasi, dan aplikasi pertama yang lengkap untuk Node.js dan NPM di Windows — termasuk manajemen versi, pemecahan masalah PATH, cakupan paket global vs. lokal, dan pertimbangan tingkat produksi yang sering diabaikan oleh sebagian besar tutorial.

Memilih Versi Node.js yang Tepat Sebelum Instalasi

Jadwal rilis Node.js mengikuti ritme yang dapat diprediksi yang secara langsung memengaruhi pilihan Anda:

Tipe RilisStabilitasKasus PenggunaanJendela Dukungan
**LTS (Long-Term Support)**TinggiBeban kerja produksi, lingkungan tim30 bulan
**Current**SedangMengakses fitur mesin V8 terbaru6 bulan
**Nightly / RC**EksperimentalKontributor inti, pengujian bleeding-edgeTidak ada jaminan

Versi LTS memiliki nomor versi mayor genap (misalnya, 20.x, 22.x) dan menerima patch keamanan kritis selama 30 bulan. Rilis Current memiliki nomor versi mayor ganjil dan beralih ke status LTS setelah enam bulan jika memenuhi kriteria stabilitas.

Untuk sebagian besar pengembang dan deployment server — termasuk aplikasi yang di-hosting di VPS Hosting — LTS adalah pilihan yang tepat. Cabang Current hanya sesuai jika Anda secara khusus membutuhkan fitur V8 atau API Node.js yang belum tersedia di lini LTS aktif.

NVM untuk Windows: Alternatif Profesional dari Instalasi Langsung

Sebelum melanjutkan dengan installer MSI, pertimbangkan apakah Anda memerlukan nvm-for-windows (Node Version Manager untuk Windows). Installer langsung mengikat sistem Anda ke satu versi Node.js. NVM memungkinkan Anda menginstal beberapa versi secara berdampingan dan beralih di antara keduanya per proyek — sangat penting saat memelihara basis kode lama bersamaan dengan yang modern.

Instal nvm-for-windows dari halaman rilis GitHub resminya, lalu gunakan:

“`

nvm install 20.14.0

nvm use 20.14.0

nvm list

“`

Jika Anda mengelola satu proyek atau belajar Node.js untuk pertama kalinya, installer MSI sudah cukup. Untuk lingkungan profesional, NVM sangat direkomendasikan.

Langkah 1: Unduh Installer Node.js

  1. Navigasikan ke situs web resmi Node.js di nodejs.org.
  2. Pilih tab LTS dan unduh Windows Installer (`.msi`) untuk arsitektur Anda. Hampir semua mesin Windows modern adalah 64-bit (`node-v20.x.x-x64.msi`). Build ARM64 tersedia untuk perangkat Windows on ARM.
  3. Verifikasi checksum SHA-256 file yang diunduh terhadap nilai yang dipublikasikan di halaman unduhan Node.js sebelum menjalankan installer. Langkah ini tidak dapat dinegosiasikan di lingkungan yang memperhatikan keamanan.

Untuk memverifikasi checksum di PowerShell:

“`powershell

Get-FileHash .node-v20.14.0-x64.msi -Algorithm SHA256

“`

Bandingkan output dengan hash yang dipublikasikan. Ketidakcocokan menunjukkan unduhan yang rusak atau telah dimanipulasi.

Langkah 2: Instal Node.js dan NPM

  1. Klik dua kali file `.msi` yang diunduh untuk meluncurkan Setup Wizard.
  2. Klik Next pada layar selamat datang.
  3. Terima Perjanjian Lisensi Pengguna Akhir dan klik Next.
  4. Jalur instalasi default adalah `C:Program Filesnodejs`. Kecuali Anda memiliki alasan khusus untuk mengubahnya (misalnya, drive non-sistem untuk manajemen ruang disk), biarkan apa adanya.
  5. Pada layar Custom Setup, konfirmasi bahwa npm package manager dipilih. Ini diaktifkan secara default.
  6. Pada layar Tools for Native Modules, Anda akan melihat opsi untuk menginstal Chocolatey, Python, dan Visual Studio Build Tools secara otomatis. Centang kotak ini jika Anda mengantisipasi penginstalan paket NPM yang menyertakan addon C++ native (misalnya, `bcrypt`, `sharp`, paket yang bergantung pada `node-gyp`). Langkah ini menginstal beberapa gigabyte tooling — lewati jika Anda hanya membutuhkan paket JavaScript murni.
  7. Klik Install, lalu Finish.

Installer secara otomatis mendaftarkan `node.exe` dan `npm.cmd` dalam variabel lingkungan `PATH` sistem Anda di bawah `C:Program Filesnodejs`.

Apa yang Sebenarnya Dilakukan Installer pada Sistem Anda

Memahami efek samping mencegah masalah debugging di masa mendatang:

  • Menambahkan `C:Program Filesnodejs` ke System PATH (tersedia untuk semua pengguna).
  • Membuat `C:Users<username>AppDataRoamingnpm` sebagai prefix paket global default.
  • Mendaftarkan Node.js di registry Windows di bawah `HKLMSOFTWARENode.js`.
  • Menginstal `npx` (runner paket NPM) bersama `npm`.

Langkah 3: Verifikasi Instalasi

Buka jendela Command Prompt atau PowerShell yang baru. Kualifikasi “baru” penting — sesi terminal yang ada menyimpan cache PATH lama dan tidak akan mencerminkan perubahan installer.

“`

node -v

“`

Output yang diharapkan: `v20.14.0` (atau versi yang Anda instal)

“`

npm -v

“`

Output yang diharapkan: `10.x.x`

“`

npx -v

“`

Output yang diharapkan: cocok atau mendekati versi npm

Jika `node` tidak dikenali, PATH tidak diperbarui dengan benar. Perbaiki secara manual:

  1. Buka System Properties > Advanced > Environment Variables.
  2. Di bawah System variables, temukan `Path` dan klik Edit.
  3. Tambahkan `C:Program Filesnodejs` jika tidak ada.
  4. Klik OK, tutup semua jendela terminal, dan buka kembali.

Mendiagnosis Masalah Umum Setelah Instalasi

Masalah: `npm` dikenali tetapi `node` tidak (atau sebaliknya).

Penyebab: Entri PATH yang tidak lengkap atau instalasi yang bertentangan dari Chocolatey atau pengaturan NVM sebelumnya.

Perbaikan: Jalankan `where node` dan `where npm` untuk mengidentifikasi binary mana yang sedang diselesaikan. Hapus entri yang sudah usang.

Masalah: Kesalahan izin `EACCES` saat menjalankan `npm install -g`.

Penyebab: Direktori prefix global tidak memiliki izin tulis untuk pengguna saat ini.

Perbaikan: Ubah prefix global ke direktori yang dimiliki pengguna (dibahas di Langkah 5).

Masalah: `node` membuka Microsoft Store alih-alih menjalankan Node.js.

Penyebab: Windows 10/11 dilengkapi dengan App Execution Alias untuk `node` yang mengarahkan ke Store.

Perbaikan: Buka Settings > Apps > App execution aliases dan nonaktifkan alias untuk `python.exe` dan `node.exe` (jika ada).

Langkah 4: Perbarui NPM ke Versi Terbaru

Versi NPM yang disertakan dengan installer Node.js biasanya satu atau dua versi minor di belakang rilis saat ini. Perbarui segera setelah instalasi:

“`

npm install -g npm@latest

“`

Flag `-g` menginstal paket ke direktori prefix global, membuatnya tersedia di seluruh sistem. Setelah pembaruan, verifikasi ulang:

“`

npm -v

“`

Kasus tepi yang penting: Di Windows, memperbarui NPM secara global terkadang dapat meninggalkan `npm.cmd` yang sudah usang di `C:Program Filesnodejs` yang menunjuk ke versi lama sementara versi baru diinstal di `C:Users<username>AppDataRoamingnpm`. Jika `npm -v` masih menampilkan versi lama setelah pembaruan, periksa binary mana yang pertama dalam PATH:

“`

where npm

“`

Path di bawah `AppDataRoamingnpm` harus muncul sebelum `C:Program Filesnodejs` dalam output. Jika tidak, susun ulang entri PATH sesuai kebutuhan.

Langkah 5: Konfigurasi NPM untuk Lingkungan Anda

Konfigurasi NPM disimpan dalam file `.npmrc`, yang dapat ada di tiga level: per-proyek, per-pengguna (`C:Users<username>.npmrc`), dan global (`C:Program Filesnodejsnode_modulesnpmnpmrc`). Pengaturan per-proyek menggantikan pengaturan per-pengguna, yang menggantikan pengaturan global.

Ubah Prefix Paket Global

Prefix global default (`AppDataRoamingnpm`) berfungsi untuk sebagian besar pengguna, tetapi pada server bersama atau ketika kuota disk berlaku, Anda mungkin ingin mengalihkannya:

“`

npm config set prefix "D:NodeGlobal"

“`

Setelah mengubah prefix, tambahkan subdirektori `bin` baru ke PATH Anda:

“`

setx PATH "%PATH%;D:NodeGlobal"

“`

Konfigurasi Registry Privat atau Mirror

Lingkungan korporat dan server air-gapped sering menggunakan registry NPM privat (Verdaccio, Nexus, Artifactory):

“`

npm config set registry "https://your-private-registry.example.com/"

“`

Untuk mengautentikasi terhadap registry privat:

“`

npm login –registry=https://your-private-registry.example.com/

“`

Untuk paket yang dibatasi cakupannya saja (misalnya, `@mycompany/*`), Anda dapat merutekan hanya cakupan tersebut ke registry privat sambil membiarkan registry publik tetap utuh:

“`

npm config set @mycompany:registry "https://your-private-registry.example.com/"

“`

Konfigurasi HTTP Proxy

Jika mesin Windows Anda berada di belakang proxy korporat:

“`

npm config set proxy "http://proxy.company.com:8080"

npm config set https-proxy "http://proxy.company.com:8080"

“`

Audit Semua Pengaturan Saat Ini

“`

npm config list

npm config list –json

“`

Flag `–json` menghasilkan konfigurasi yang dapat dibaca mesin, berguna untuk skrip dan diagnostik pipeline CI/CD.

Referensi Konfigurasi NPM yang Berguna

Kunci KonfigurasiNilai DefaultTujuan
`prefix``%APPDATA%npm`Lokasi instalasi paket global
`registry``https://registry.npmjs.org/`Registry sumber paket
`cache``%APPDATA%npm-cache`Direktori cache paket lokal
`save-exact``false`Sematkan versi tepat di `package.json`
`fund``true`Tampilkan pesan pendanaan setelah instalasi
`audit``true`Jalankan audit keamanan saat instalasi

Langkah 6: Buat dan Jalankan Aplikasi Node.js

Inisialisasi Proyek

“`

mkdir my-node-app

cd my-node-app

npm init -y

“`

`npm init -y` menghasilkan `package.json` dengan default yang berasal dari nama direktori dan konfigurasi pengguna NPM Anda. File `package.json` adalah manifes aplikasi Anda — ini mendefinisikan titik masuk, skrip, dependensi, dan metadata.

Bangun Server HTTP Dasar

Buat `app.js` di direktori proyek:

“`javascript

// app.js

const http = require('http');

const hostname = '127.0.0.1';

const port = 3000;

const server = http.createServer((req, res) => {

res.statusCode = 200;

res.setHeader('Content-Type', 'text/plain');

res.end('Hello, World!n');

});

server.listen(port, hostname, () => {

console.log(`Server running at http://${hostname}:${port}/`);

});

“`

Jalankan:

“`

node app.js

“`

Navigasikan ke `http://127.0.0.1:3000/` di browser Anda. Anda akan melihat `Hello, World!`.

Catatan teknis: Node.js menggunakan event loop single-threaded yang didukung oleh libuv untuk operasi I/O. Callback `http.createServer` diaktifkan pada setiap permintaan masuk tanpa memblokir loop. Arsitektur ini membuat Node.js sangat efisien untuk beban kerja yang terikat I/O tetapi tidak cocok untuk tugas yang intensif CPU tanpa worker thread atau proses anak.

Tambahkan Framework Express

Express adalah framework HTTP standar de facto untuk Node.js, menyediakan routing, dukungan middleware, dan abstraksi permintaan/respons yang bersih:

“`

npm install express

“`

Ini menginstal Express secara lokal (ke dalam `node_modules/`) dan mencatatnya sebagai dependensi di `package.json`. Perbarui `app.js`:

“`javascript

const express = require('express');

const app = express();

const port = 3000;

app.get('/', (req, res) => {

res.send('Hello from Express!');

});

app.listen(port, () => {

console.log(`Server running at http://localhost:${port}`);

});

“`

“`

node app.js

“`

Kunjungi `http://localhost:3000/` untuk mengonfirmasi respons.

Memahami `node_modules` dan `.gitignore`

Direktori `node_modules` dapat berisi ratusan megabyte file. Jangan pernah meng-commit-nya ke version control. Buat file `.gitignore`:

“`

node_modules/

.env

“`

Kolaborator dan pipeline deployment memulihkan dependensi dengan menjalankan `npm install`, yang membaca `package.json` dan `package-lock.json` untuk mereproduksi pohon dependensi yang tepat.

Langkah 7: Mengelola Paket — Lokal vs. Global

Memahami perbedaan antara instalasi paket lokal dan global adalah salah satu sumber kebingungan paling umum bagi pendatang baru Node.js.

CakupanPerintah InstalasiLokasiKasus Penggunaan
**Lokal**`npm install <pkg>``./node_modules/`Dependensi aplikasi
**Lokal Dev**`npm install –save-dev <pkg>``./node_modules/`Alat build, test runner
**Global**`npm install -g <pkg>``%APPDATA%npm`Alat CLI (misalnya, `nodemon`, `pm2`)

Aturan utama: Jika sebuah paket menyediakan alat baris perintah yang ingin Anda gunakan di mana saja (misalnya, `nodemon`, `eslint`, `typescript`), instal secara global. Jika itu adalah library yang diimpor aplikasi Anda dengan `require()` atau `import`, instal secara lokal.

Menjalankan Aplikasi dalam Produksi dengan PM2

Untuk aplikasi Node.js apa pun yang di-deploy di server — baik di instance VPS Hosting maupun Dedicated Server — menjalankan `node app.js` secara langsung tidak memadai. Proses akan berhenti jika terminal ditutup atau terjadi pengecualian yang tidak tertangani.

PM2 adalah manajer proses standar untuk Node.js dalam produksi:

“`

npm install -g pm2

pm2 start app.js –name "my-app"

pm2 startup

pm2 save

“`

`pm2 startup` menghasilkan perintah untuk mengonfigurasi PM2 agar memulai ulang aplikasi Anda secara otomatis saat sistem reboot. `pm2 save` mempertahankan daftar proses saat ini.

Langkah 8: Penguatan Keamanan dan Audit

Jalankan Audit Dependensi

“`

npm audit

“`

NPM membandingkan paket yang Anda instal dengan GitHub Advisory Database. Setiap kerentanan yang diketahui dilaporkan dengan tingkat keparahan (rendah, sedang, tinggi, kritis) dan jalur remediasi.

“`

npm audit fix

“`

Ini secara otomatis meningkatkan paket yang rentan ke versi patch terdekat yang tidak merusak. Untuk perubahan yang merusak, tinjau output dan tingkatkan secara manual.

Sematkan Versi Dependensi

Di `package.json`, NPM menggunakan rentang semantic versioning secara default (`^1.2.3` mengizinkan pembaruan minor dan patch). Dalam produksi, sematkan versi tepat untuk mencegah kejutan supply-chain:

“`

npm config set save-exact true

“`

Atau ganti secara manual prefiks `^` dengan string versi tepat di `package.json` dan commit file `package-lock.json`.

Hindari Menjalankan NPM sebagai Administrator

Menjalankan `npm install -g` dengan hak istimewa yang ditingkatkan menulis file yang dimiliki oleh akun Administrator, yang dapat menyebabkan kesalahan izin untuk operasi non-elevated berikutnya. Konfigurasi prefix global yang dimiliki pengguna (lihat Langkah 5) untuk menghilangkan kebutuhan hak istimewa yang ditingkatkan sepenuhnya.

Men-deploy Aplikasi Node.js ke Server

Pengembangan lokal hanyalah tahap pertama. Deployment produksi memperkenalkan persyaratan tambahan: manajemen proses, reverse proxying, terminasi TLS, dan manajemen variabel lingkungan.

Stack produksi tipikal di instance Linux VPS Hosting memasangkan Node.js dengan Nginx sebagai reverse proxy. Nginx menangani terminasi TLS (menggunakan sertifikat dari penyedia seperti SSL Certificates) dan meneruskan permintaan ke proses Node.js yang mendengarkan di port lokal.

Untuk tim yang lebih memilih lingkungan panel kontrol yang dikelola, VPS dengan cPanel menyediakan manajemen aplikasi Node.js melalui antarmuka cPanel, menyederhanakan deployment tanpa memerlukan konfigurasi SSH langsung.

Konfigurasi khusus lingkungan (kredensial database, kunci API, nomor port) tidak boleh pernah di-hardcode. Gunakan file `.env` dengan paket `dotenv`:

“`

npm install dotenv

“`

“`javascript

require('dotenv').config();

const port = process.env.PORT || 3000;

“`

Matriks Keputusan: Kapan Menggunakan Setiap Metode Instalasi

SkenarioPendekatan yang Direkomendasikan
Proyek tunggal, belajar Node.jsInstaller MSI, versi LTS
Beberapa proyek dengan versi Node.js yang berbedanvm-for-windows
Pipeline CI/CD di Windows ServerInstaller MSI atau Chocolatey (`choco install nodejs-lts`)
Server Linux produksiManajer paket (apt/yum) atau nvm
Aplikasi yang dikontainerisasiImage Docker `node` resmi
Lingkungan korporat air-gappedMSI offline + registry NPM privat (Verdaccio)

Poin Teknis Utama

  • Selalu instal versi LTS untuk lingkungan produksi dan tim. Gunakan rilis Current hanya ketika fitur V8 atau API Node.js tertentu diperlukan.
  • Gunakan nvm-for-windows di lingkungan mana pun di mana beberapa versi Node.js harus ada secara bersamaan.
  • Verifikasi checksum SHA-256 installer sebelum eksekusi.
  • Ubah prefix NPM global ke direktori yang dimiliki pengguna untuk menghindari kesalahan izin dan menghilangkan kebutuhan hak istimewa yang ditingkatkan.
  • Jangan pernah meng-commit `node_modules/` ke version control. Selalu commit `package-lock.json`.
  • Jalankan `npm audit` setelah setiap `npm install` dalam pipeline produksi.
  • Gunakan PM2 untuk manajemen proses pada deployment server apa pun — jangan pernah menjalankan `node app.js` secara langsung dalam produksi.
  • Terminasi TLS di lapisan reverse proxy (Nginx, Caddy) daripada di dalam proses Node.js untuk performa yang lebih baik dan manajemen sertifikat.
  • Simpan rahasia dalam variabel lingkungan yang dimuat melalui `dotenv`, tidak pernah dalam kode sumber.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara Node.js LTS dan Current di Windows?

Versi LTS menerima patch keamanan dan stabilitas selama 30 bulan dan memiliki nomor versi mayor genap (18, 20, 22). Versi Current mencakup fitur bahasa dan runtime terbaru tetapi hanya didukung selama enam bulan sebelum beralih ke LTS atau dihentikan. Untuk deployment Windows produksi, selalu gunakan LTS.

Mengapa `npm install -g` gagal dengan kesalahan izin di Windows?

Prefix global default (`C:Users<username>AppDataRoamingnpm`) terkadang tidak memiliki izin tulis karena kebijakan UAC atau instalasi sebelumnya yang dijalankan sebagai Administrator. Perbaikannya adalah menjalankan terminal sebagai Administrator (tidak direkomendasikan jangka panjang) atau mengonfigurasi ulang prefix global ke direktori yang dimiliki akun pengguna Anda dengan `npm config set prefix "C:yourpath"`.

Bisakah saya menjalankan beberapa versi Node.js secara bersamaan di Windows?

Ya, menggunakan nvm-for-windows. Instal, lalu gunakan `nvm install <version>` dan `nvm use <version>` untuk beralih runtime aktif. Setiap versi mempertahankan direktori paket globalnya sendiri, mencegah konflik lintas versi.

Apa itu `package-lock.json` dan haruskah saya meng-commit-nya?

`package-lock.json` adalah catatan yang tepat dan deterministik dari seluruh pohon dependensi yang diselesaikan selama `npm install`. Ini memastikan bahwa setiap pengembang dan setiap CI/CD run menginstal versi paket yang identik. Selalu commit ke version control dan jangan pernah mengeditnya secara manual.

Bagaimana cara menjalankan aplikasi Node.js secara otomatis saat startup Windows tanpa server?

Untuk mesin pengembangan, gunakan PM2 dengan `pm2 startup` dan `pm2 save`. Untuk integrasi Windows Service, alat seperti `node-windows` membungkus proses Node.js sebagai Windows Service native, memungkinkan manajemen melalui snap-in MMC Services dan restart otomatis saat kegagalan atau reboot.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai