BunJS NPM Run ALL error stdio option
Di bawah runtime BunJS, module NPM Run ALL tidak berjalan mulus, malah ERROR: Invalid stdio option.

- Fauzan My
- 3 min read

Rasa penasaran untuk mencicipi teknologi baru tak pernah surut. Kali ini, saya memutuskan untuk beralih dari NodeJS ke BunJS dalam pengembangan Pehthme—HTML Template untuk Hugo Theme dan WP Theme, menggunakan framework TailwindCSS.
Mengembangkan real project dengan TailwindCSS memang harus run “underlaying” with NodeJS.
Meskipun NodeJS telah mencapai tingkat kematangan yang signifikan beberapa tahun terakhir, saya tertarik untuk mencoba BunJS, alternatif JavaScript runtime all-in-one yang super cepat.
Sebagai teknologi web, NodeJs telah mencapai tingkat maturity. Dari segi stablitas, NodeJS sudah sangat stabil.
Buktinya, banyak big-company dan startup skala unicorn menggunakan Node.js dalam produksi, serta turut berkontribusi mengembangkan ekosistemnya.
So, kenapa move on ke BunJS—A fast all-in-one JavaScript runtime—kemarin sore yang balum tentu stable?
Pertama, keinginan untuk mencoba hal baru. Kedua, seperti yang dikatakan Shao Kahn dalam Mortal Kombat versi Ghana: “I don’t want peace; I want problems always.”
Problem pertama yang saya hadapi ketika menggunakan BunJS adalah saat menjalan modul NPM Run ALL.
NPM Run ALL adalah sebuah tools CLI yang spesialisasinya bisa mengeksekusi multiple script secara parraler. Di bawah kendali BunJS NPM Run ALL langsung mengalami kegagalan mesin, dengan menampilkan pesan ERROR: Invalid stdio option
.
$ run-p dev:*
ERROR: Invalid stdio option "[object ReadStream]"
Apa Solusinya untuk bun run all ERROR: Invalid stdio option?
Untuk sementara ini (BunJS versi 1.0.18 - 2023), belum ada solusi yang mudah untuk menyelesaikan kasus ERROR: Invalid stdio option "[object ReadStream]"
Bahkan dari hasil penelusuran Google, tidak ada jawaban pasti dari si Mbah. Satu satunya informasi adalah Github issues BunJS nomor #4402 yang dilemparkan oleh user yus-ham.
Menurut salah satu pengguna BunJs, dari pada pusing cari problem solving bun npm-run-all error ‘Invalid stdio option’, mending ganti ke modul Concurrently.
“Sepertinya modul ini (Concurrently) berfungsi pada Bun, jadi setidaknya kita memiliki alternatif.” tulis Silvenon pada Github issues BunJS nomor #4402.
Concurrently alternatif npm-run-all
Exactly! Setelah mengganti Node module (packages) npm-run-all
dengan modul Concurrently
, masalah jadi teratasi.
Concurrently adalah modul yang memungkinkan eksekusi simultan atau paralel dari beberapa script atau proses.
Begitu juga dengan modul NPM-run-all, sama-sama mampu mengeksekusi script secara simultan.
Berikut contoh script penggunaan Concurrently:
"dev": "concurrently \"bun run tailwindcss -i ./assets/input.css -o ./assets/css/style.css -w\" \"hugo server --ignoreCache --disableFastRender\"",
Cara mengeksekusi Concurrently:
$ bun run dev
Contoh script NPN-run-all:
"dev:generate": "npx tailwindcss -i ./assets/input.css -o ./assets/css/main.css -w",
"dev:hugo": "hugo server",
"dev": "run-p dev:*"
Cara mengeksekusi NPM-run-all:
$ bun run dev
Hasilnya malah error
$ run-p dev:*
ERROR: Invalid stdio option "[object ReadStream]"
Apa itu NodeJS Concurrently
Sesuai dengan namanya ‘Concurrent’ memungkinkan eksekusi simultan atau paralel dari beberapa script atau proses.
By default, NodeJS tidak support running script secara simultan atau paralel baris perintah yang di dalam file package.json
.
Namun, kita bisa menggunakan modul pihak ketiga seperti concurrently
atau npm-run-all
untuk mengeksekusi script secara paralel.
Studi kasus:
Pada saat mengoperasikan website ini, saya menggunakan framework Hugo untuk manajemen konten, dan TailwindCSS untuk templating theme.
Sebelumnya, saya menjalankan perintah hugo server
dan npx tailwindcss -i
secara terpisah, hal ini sangat tidak efisien.
Tentu proses development seperti itu sangat membosankan harus membuka banyak jendela Terminal.
Dengan menggunakan modul-modul seperti concurrently
atau npm-run-all
, saya dapat mengeksekusi multiple script secara paralel yang akan meningkatkan efisiensi kerja.
Maka, muncullah modul seperti npm-run-all
atau concurrently
untuk mengeksekusi multiple script secara paralel, solusi praktis untuk meningkatkan produktivitas webdev.