Episode ini memisahkan peran node sebagai runtime, npm sebagai manajer paket, dan npx sebagai peluncur paket. Kalian belajar struktur package.json, semver, cara menambahkan dependensi, dan menjalankan tool sementara tanpa install global.

Tiga perintah yang paling sering kalian ketik di dunia Node.js adalah node, npm, dan npx. Namanya mirip, tapi perannya berbeda jauh. node menjalankan JavaScript, npm mengelola paket, dan npx menjalankan paket tanpa menginstall-nya secara permanen.
Episode 2 memastikan kalian menguasai ketiganya. Kita akan melihat cara kerja perintah node untuk evaluasi dan REPL, struktur package.json sebagai pusat project, aturan semver dalam pemilihan versi, serta cara memanfaatkan npx untuk tool seperti tsc dan create-next-app.
Cara paling umum memakai node adalah menjalankan file skrip. Selain itu, node punya flag berguna untuk evaluasi cepat:
node hello.js
node -e "console.log('Jalankan tanpa file')"
node -p "1 + 1"Flag -e mengevaluasi kode langsung, sementara -p mengevaluasi lalu mencetak hasilnya seperti REPL. Jadi node -p "1 + 1" langsung mencetak 2 tanpa perlu fungsi console. Kedua flag ini sangat praktis untuk eksperimen cepat di terminal.
Ketik node tanpa argumen untuk masuk ke REPL — shell interaktif tempat kalian mengetik JavaScript dan langsung melihat hasilnya. Ketik process.exit() untuk keluar.
Untuk development, Node.js juga menyediakan mode watch bawaan:
node --watch app.jsMode node --watch app.js memantau file dan me-restart program setiap ada perubahan — pengganti nodemon yang kini tersedia langsung dari Node.js tanpa dependensi tambahan.
package.json adalah jantung setiap project Node.js. Di sinilah nama, versi, skrip, dan dependensi dicatat. Kalian bisa membuatnya dengan npm init -y, atau membaca dan mengubah isinya langsung:
npm init -y
cat package.jsonField yang paling penting di awal:
npm run.Jangan memakai npm run hanya untuk perintah bawaan — ini cara standar untuk menyimpan perintah berulang:
{
"name": "belajar-nodejs",
"version": "1.0.0",
"scripts": {
"start": "node app.js",
"dev": "node --watch app.js"
}
}Dengan definisi di atas, kalian menjalankan npm run dev untuk development dan npm start untuk produksi. Skrip ini bisa diisi perintah apa pun — termasuk tool build dan test yang akan kita bahas di episode 18.
Untuk menambahkan paket, gunakan npm install:
npm install express
npm install --save-dev vitestnpm install express menambahkan Express ke dependencies, sementara --save-dev menambahkannya ke devDependencies. Ketika dipakai bersama, perintah npm install --frozen-lockfile (sesuai lockfile) memastikan seluruh anggota tim memakai versi dependensi yang persis sama.
Setiap versi paket di npm mengikuti semver: major.minor.patch. Versi 2.3.1 berarti major 2, minor 3, patch 1. Perubahan breaking menaikkan major, fitur baru menaikkan minor, dan perbaikan bug menaikkan patch.
Di package.json, dependensi ditulis dengan rentang versi seperti ^5.0.0 yang berarti boleh naik ke minor dan patch terbaru di major 5, tapi tidak lompat ke major 6. Inilah alasan lockfile penting: rentang versi boleh meluas, tapi lockfile mengunci versi yang benar-benar terinstall.
npx meluncurkan paket dari registry tanpa menginstall-nya secara permanen. Ini ideal untuk tool CLI sekali pakai:
npx tsc --version
npx create-next-app@latest situs-saya
npx express-generator api-sayaPerintah npx tsc --version mengunduh TypeScript sementara lalu menjalankan compiler-nya — tanpa membanjiri mesin kalian dengan instalasi global. Untuk versi tertentu, tambahkan tag seperti create-next-app@latest agar selalu memakai rilis terbaru.
Aturannya sederhana: pakai npm untuk mengelola dependensi project yang dipakai terus-menerus, dan npx untuk menjalankan tool sekali jalan. Jika sebuah CLI dipakai setiap hari di banyak project, barulah pertimbangkan npm install -g untuk menginstall global.
Inti yang harus dibawa pulang:
node menjalankan JavaScript; -e dan -p untuk evaluasi cepat.node --watch menggantikan nodemon untuk auto restart.package.json menyimpan metadata, skrip, dan dependensi project.npm install menambah dependensi; --save-dev untuk tooling.major.minor.patch menentukan aturan kenaikan versi.npx menjalankan paket sementara tanpa install global.Di episode 3 selanjutnya kita akan membahas modul core Node.js — fs untuk sistem file, path untuk manipulasi jalur, os untuk informasi sistem, dan events untuk EventEmitter. Kalian akan melihat modul bawaan yang menjadi fondasi semua aplikasi backend Node.js.