package.json — BAB 12
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah menyelesaikan halaman ini, kamu diharapkan dapat:
- Menjelaskan fungsi berkas
package.jsondi project Node.js/TypeScript. - Membedakan antara
dependenciesdandevDependencies. - Membuat skrip pintasan (npm scripts) untuk mempermudah pengerjaan project.
Pendahuluan
Section titled “Pendahuluan”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.
Penjelasan: Struktur package.json
Section titled “Penjelasan: Struktur package.json”package.json (BAB 11) adalah pusat informasi dan konfigurasi manajemen project Node.js.
Properti penting di dalam package.json:
1. dependencies
Section titled “1. dependencies”Daftar library/paket yang wajib ada agar aplikasi bisa berjalan di komputer pengguna saat aplikasi dirilis (contoh: library server web Express atau konektor database).
2. devDependencies
Section titled “2. devDependencies”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).
3. scripts
Section titled “3. scripts”Blok yang menyimpan skrip jalan pintas (shortcuts) terminal untuk menjalankan tugas-tugas berulang:
"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:
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”Terminal: npm run dev ──► Menjalankan "tsx src/main.ts" secara otomatis di latar belakangExample: 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):
{ "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" }}Common Mistakes
Section titled “Common Mistakes”- Salah menaruh dependencies: Menginstall compiler
typescriptsebagai 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
-Datau--save-devsaat menginstall library development:npm install -D typescript tsx.
- Solusi: Gunakan flag
Best Practice
Section titled “Best Practice”- Jangan pernah mengedit isi folder
node_modulessecara manual. Semua isi folder tersebut dikelola otomatis oleh npm berdasarkan isi filepackage.jsondanpackage-lock.json.
Ringkasan
Section titled “Ringkasan”package.jsonmengelola data identitas project, scripts pintasan, dan daftar library dependencies.dependenciesdibutuhkan saat runtime;devDependencieshanya dibutuhkan saat coding development.- Jalankan skrip pintasan menggunakan perintah
npm run [nama-script].
Latihan
Section titled “Latihan”- Buka file
package.jsondi project SIAKAD kamu (BAB 11). - Tambahkan script
"dev": "tsx src/main.ts"ke dalam properti"scripts". - Jalankan aplikasimu lewat terminal menggunakan perintah
npm run dev.