Lewati ke konten

package.json — BAB 12

Setelah menyelesaikan halaman ini, kamu diharapkan dapat:

  • Menjelaskan fungsi berkas package.json di project Node.js/TypeScript.
  • Membedakan antara dependencies dan devDependencies.
  • Membuat skrip pintasan (npm scripts) untuk mempermudah pengerjaan project.

Di BAB 11, kita menginisialisasi project menggunakan npm init -y yang menghasilkan berkas package.json. Di halaman ini kita akan membedah isi berkas tersebut agar kamu bisa mengelola library pihak ketiga dan membuat skrip otomatis secara mandiri.


package.json (BAB 11) adalah pusat informasi dan konfigurasi manajemen project Node.js.

Properti penting di dalam package.json:

Daftar library/paket yang wajib ada agar aplikasi bisa berjalan di komputer pengguna saat aplikasi dirilis (contoh: library server web Express atau konektor database).

Daftar library/paket yang hanya dibutuhkan saat menulis kode di laptop developer, tetapi tidak diperlukan saat aplikasi dijalankan oleh pengguna (contoh: compiler typescript, linter eslint, formatter prettier, atau test runner vitest).

Blok yang menyimpan skrip jalan pintas (shortcuts) terminal untuk menjalankan tugas-tugas berulang:

📦 JSON
"scripts": {
"start": "node dist/main.js",
"dev": "tsx src/main.ts",
"build": "tsc"
}

Menjalankannya di terminal cukup dengan mengetik: npm run dev atau npm run build.


Analogi Kehidupan Sehari-hari: Daftar Karyawan Koperasi Sekolah

Section titled “Analogi Kehidupan Sehari-hari: Daftar Karyawan Koperasi Sekolah”

Bayangkan Daftar Anggota Koperasi Sekolah:

🖥️ Output
Anggota Inti (Dependencies)
├── Petugas Kasir (wajib ada untuk melayani pembeli setiap hari)
└── Petugas Stok barang
Tenaga Kerja Tambahan Konstruksi (DevDependencies)
├── Tukang cat bangunan (hanya dibutuhkan saat merenovasi gedung toko di awal)
└── Arsitek perancang lemari (hanya saat merancang layout)

Saat toko koperasi sudah dibuka secara resmi untuk melayani siswa (production), tukang cat dan arsitek (devDependencies) sudah pulang ke rumah masing-masing. Hanya kasir (dependencies) yang tetap bekerja di toko setiap hari.


Visual Illustration: Alur Kerja Script npm

Section titled “Visual Illustration: Alur Kerja Script npm”
🖥️ Output
Terminal: npm run dev ──► Menjalankan "tsx src/main.ts" secara otomatis di latar belakang

Example: File package.json yang Terkonfigurasi Rapi

Section titled “Example: File package.json yang Terkonfigurasi Rapi”

Berikut contoh berkas package.json untuk project TypeScript sekolah (BAB 11):

📦 package.json
{
"name": "siakad-rpl",
"version": "1.0.0",
"description": "Sistem Informasi Akademik SMK",
"main": "dist/main.js",
"scripts": {
"dev": "tsx src/main.ts",
"build": "tsc",
"start": "node dist/main.js"
},
"dependencies": {
"dotenv": "^16.4.5"
},
"devDependencies": {
"typescript": "^5.3.3",
"tsx": "^4.7.0"
}
}

  • Salah menaruh dependencies: Menginstall compiler typescript sebagai dependencies biasa. Ini membuat ukuran aplikasi akhir menjadi sangat besar saat dideploy karena menyertakan compiler yang sebenarnya tidak dibutuhkan lagi saat aplikasi dijalankan dalam format JS.
    • Solusi: Gunakan flag -D atau --save-dev saat menginstall library development: npm install -D typescript tsx.


  • Jangan pernah mengedit isi folder node_modules secara manual. Semua isi folder tersebut dikelola otomatis oleh npm berdasarkan isi file package.json dan package-lock.json.

  • package.json mengelola data identitas project, scripts pintasan, dan daftar library dependencies.
  • dependencies dibutuhkan saat runtime; devDependencies hanya dibutuhkan saat coding development.
  • Jalankan skrip pintasan menggunakan perintah npm run [nama-script].

  1. Buka file package.json di project SIAKAD kamu (BAB 11).
  2. Tambahkan script "dev": "tsx src/main.ts" ke dalam properti "scripts".
  3. Jalankan aplikasimu lewat terminal menggunakan perintah npm run dev.