Saat bekerja dengan proyek JavaScript atau TypeScript, file package.json bukan hanya tempat menyimpan nama proyek dan daftar dependency. Salah satu bagian yang paling sering dipakai dalam workflow harian developer adalah scripts. Melalui script, kita bisa memberi nama pendek untuk perintah yang sering dijalankan, misalnya menjalankan aplikasi, mode development, atau testing.
Jika Anda menggunakan Bun sebagai runtime dan package manager, menjalankan script dari package.json menjadi sangat praktis. Bun dapat membaca bagian scripts dan mengeksekusi perintah yang sudah kita definisikan, mirip seperti npm, tetapi dengan pengalaman yang ringkas dan cepat.
Di artikel ini, kita akan membahas dasar-dasar script di package.json dengan Bun, cara mendefinisikannya, cara menjalankannya, serta kapan script seperti start, dev, dan test berguna dalam pekerjaan sehari-hari. Contoh yang digunakan sengaja sederhana agar mudah dipahami tanpa setup yang rumit.
Apa itu script di package.json?
Bagian scripts di package.json adalah sekumpulan perintah bernama yang bisa dijalankan lewat command line. Intinya, Anda membuat alias untuk command yang mungkin panjang atau sering diulang.
Contoh sederhana:
{
"scripts": {
"start": "bun run index.js"
}
}Dengan konfigurasi tersebut, Anda tidak perlu selalu mengetik perintah lengkap secara manual. Cukup jalankan:
bun run startBun akan mencari script bernama start di package.json, lalu mengeksekusi isinya.
Pendekatan ini berguna karena:
- Konsisten: semua anggota tim menjalankan command yang sama.
- Mudah diingat: nama script biasanya menggambarkan tujuan, misalnya
devatautest. - Mudah dikembangkan: jika command di balik script berubah, Anda cukup memperbarui satu tempat di
package.json.
Struktur minimal package.json untuk Bun
Untuk memahami konsepnya, kita mulai dari contoh paling minimal. Misalkan Anda punya proyek kecil dengan satu file index.js:
console.log("Halo dari Bun");Lalu buat file package.json seperti ini:
{
"name": "belajar-bun-scripts",
"version": "1.0.0",
"private": true,
"scripts": {
"start": "bun run index.js"
}
}Penjelasan singkat:
name: nama proyek.version: versi proyek.private: mencegah proyek tidak sengaja dipublikasikan ke registry.scripts: tempat mendefinisikan command yang bisa dipanggil dengan Bun.
Untuk menjalankannya:
bun run startHasilnya akan menampilkan:
Halo dari BunWalaupun contoh ini sederhana, pola yang sama dipakai di proyek nyata. Perbedaannya hanya pada kompleksitas command di dalam script.
Contoh script yang paling umum: start, dev, dan test
Dalam banyak proyek JavaScript, ada beberapa nama script yang hampir selalu muncul. Tiga yang paling umum adalah start, dev, dan test. Masing-masing biasanya punya tujuan yang berbeda.
1. Script start
Script start biasanya dipakai untuk menjalankan aplikasi dalam mode normal. Untuk proyek backend kecil, ini bisa berarti menyalakan server. Untuk proyek sederhana, ini bisa berarti mengeksekusi file entry point utama.
Contoh:
{
"name": "belajar-bun-scripts",
"version": "1.0.0",
"private": true,
"scripts": {
"start": "bun run server.js"
}
}Misalnya isi server.js:
console.log("Aplikasi dijalankan dalam mode start");Menjalankannya:
bun run startKenapa start berguna? Karena nama ini sudah menjadi konvensi umum. Saat developer lain melihat proyek Anda, mereka biasanya langsung mengira bahwa start adalah command utama untuk menjalankan aplikasi.
2. Script dev
Script dev dipakai untuk mode pengembangan. Dalam mode ini, developer biasanya ingin perubahan file langsung terdeteksi tanpa menjalankan ulang command secara manual. Pada ekosistem Bun, pendekatan umum adalah memakai mode watch atau tool development lain jika dibutuhkan.
Contoh sederhana:
{
"name": "belajar-bun-scripts",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "bun --watch index.js"
}
}Jika isi index.js diubah, Bun akan mencoba menjalankannya kembali secara otomatis.
Menjalankan script dev:
bun run devManfaat utama script dev:
- Mempercepat iterasi saat coding.
- Mengurangi kebutuhan restart manual.
- Membuat workflow lokal lebih nyaman.
Namun perlu dipahami bahwa isi script dev sangat tergantung pada jenis proyek. Pada proyek frontend, dev bisa berisi command untuk development server. Pada proyek backend sederhana dengan Bun, Anda bisa mulai dari mode watch seperti contoh di atas.
3. Script test
Script test digunakan untuk menjalankan pengujian. Bun memiliki dukungan test runner bawaan, sehingga untuk kasus dasar Anda bisa langsung memanfaatkannya.
Contoh package.json:
{
"name": "belajar-bun-scripts",
"version": "1.0.0",
"private": true,
"scripts": {
"test": "bun test"
}
}Misalkan Anda punya file sum.js:
export function sum(a, b) {
return a + b;
}Dan file test sum.test.js:
import { expect, test } from "bun:test";
import { sum } from "./sum";
test("sum menambahkan dua angka", () => {
expect(sum(2, 3)).toBe(5);
});Jalankan test dengan:
bun run testMengapa script test penting? Karena testing adalah aktivitas yang sebaiknya mudah dijalankan kapan saja. Jika prosesnya sederhana dan konsisten, developer cenderung lebih sering menjalankannya.
Contoh package.json yang lebih lengkap tetapi tetap minimal
Setelah memahami masing-masing script, berikut contoh konfigurasi minimal yang realistis untuk pemula:
{
"name": "belajar-bun-scripts",
"version": "1.0.0",
"private": true,
"scripts": {
"start": "bun run index.js",
"dev": "bun --watch index.js",
"test": "bun test"
}
}Dengan konfigurasi tersebut, Anda bisa memakai tiga command utama:
bun run startuntuk menjalankan aplikasi secara normal.bun run devuntuk mode pengembangan.bun run testuntuk menjalankan pengujian.
Ini sudah cukup untuk banyak eksperimen kecil, belajar dasar Bun, atau membangun struktur awal proyek sebelum bertambah kompleks.
Cara Bun menjalankan script dan kenapa ini memudahkan workflow
Saat Anda menjalankan bun run nama-script, Bun akan membaca file package.json, mencari key yang sesuai di bagian scripts, lalu mengeksekusi command tersebut.
Keuntungan praktisnya dalam workflow harian developer cukup besar:
Menyatukan entry point command
Tanpa script, setiap developer mungkin menjalankan command yang sedikit berbeda. Ada yang langsung mengeksekusi file, ada yang menambahkan flag tertentu, ada yang lupa urutan parameter. Dengan script, semua orang memakai satu pintu masuk yang sama.
Mengurangi command yang harus dihafal
Bayangkan jika command development Anda panjang, misalnya melibatkan banyak argumen. Menyimpannya dalam scripts membuat terminal lebih bersih dan mengurangi typo.
Mudah dipakai di CI/CD
Meskipun artikel ini fokus untuk pemula, penting dipahami bahwa script juga sering dipakai di pipeline otomatis. Misalnya sistem CI cukup memanggil bun run test tanpa perlu mengetahui detail tool yang dipakai di baliknya.
Mudah diubah tanpa mengganggu kebiasaan tim
Hari ini script dev mungkin memakai satu command. Besok Anda menggantinya dengan command lain. Selama nama script tetap sama, developer lain tidak perlu mengubah kebiasaan mereka.
Kesalahan umum yang sering terjadi
1. Salah menulis nama script
Jika Anda menjalankan bun run dev tetapi di package.json ternyata tidak ada key dev, Bun tidak akan menemukan script tersebut. Pastikan nama yang dipanggil sama persis.
2. JSON tidak valid
package.json harus berupa JSON yang valid. Kesalahan kecil seperti koma berlebih, tanda kutip yang hilang, atau struktur kurung kurawal yang salah akan membuat file gagal dibaca.
Tip debugging: jika script tidak bisa dijalankan, periksa dulu apakah
package.jsonvalid secara sintaks.
3. Mengira script selalu harus rumit
Banyak pemula menganggap script baru berguna kalau isinya kompleks. Padahal script sederhana seperti "start": "bun run index.js" pun sudah sangat bermanfaat karena memberi standar command yang jelas.
4. Mencampur tujuan start dan dev
Secara teknis Anda bisa saja membuat start dan dev berisi command yang sama. Namun dari sisi workflow, akan lebih baik jika keduanya dibedakan ketika kebutuhan proyek mulai berkembang. start biasanya untuk menjalankan aplikasi secara normal, sedangkan dev untuk pengalaman pengembangan yang lebih nyaman.
Tips praktis untuk pemula
- Mulai dari tiga script inti:
start,dev, dantestsudah cukup untuk banyak proyek kecil. - Gunakan nama script yang umum: ini membantu kolaborasi karena konvensinya mudah dikenali.
- Jaga script tetap jelas: jangan membuat script terlalu rumit jika belum diperlukan.
- Uji satu per satu: setiap kali menambah script baru, jalankan langsung untuk memastikan perintahnya benar.
- Pahami isi command: jangan hanya menyalin dari internet. Mengerti isi script akan memudahkan saat debugging.
Penutup
Script di package.json adalah cara sederhana tetapi sangat efektif untuk merapikan workflow pengembangan. Dengan Bun, Anda bisa mendefinisikan command yang sering dipakai lalu menjalankannya secara konsisten melalui bun run. Untuk pemula, memahami tiga script dasar seperti start, dev, dan test sudah memberi fondasi yang kuat untuk bekerja lebih terstruktur.
Jika Anda baru mulai menggunakan Bun, cobalah dari konfigurasi minimal terlebih dahulu. Setelah nyaman, Anda bisa menambahkan script lain sesuai kebutuhan proyek, misalnya untuk linting, build, atau formatting. Prinsip utamanya tetap sama: simpan command penting di package.json agar proyek lebih mudah dijalankan, dipahami, dan dipelihara.
Komentar
0 komentar
Masuk ke akun kamu untuk ikut berkomentar.
Belum ada komentar
Jadilah yang pertama ikut berdiskusi!