Dokumentasi • Perselisihan • Permasalahan • Peta Jalan
Bun adalah perangkat lengkap untuk aplikasi JavaScript dan TypeScript. Ini dikirimkan sebagai satu executable yang disebut bun
.
Intinya adalah Bun runtime , runtime JavaScript cepat yang dirancang sebagai pengganti Node.js. Itu ditulis dalam Zig dan didukung oleh JavaScriptCore, secara dramatis mengurangi waktu startup dan penggunaan memori.
bun run index.tsx # TS dan JSX didukung secara langsung
Alat baris perintah bun
juga mengimplementasikan test runner, script runner, dan manajer paket yang kompatibel dengan Node.js. Daripada 1.000 node_modules untuk pengembangan, Anda hanya perlu bun
. Alat bawaan Bun secara signifikan lebih cepat daripada opsi yang ada dan dapat digunakan dalam proyek Node.js yang ada dengan sedikit atau tanpa perubahan.
bun test # jalankan tesbun run start # jalankan skrip `start` di `package.json`bun install <pkg> # install a packagebunx cowsay 'Halo, dunia!' # mengeksekusi sebuah paket
Bun mendukung Linux (x64 & arm64), macOS (x64 & Apple Silicon) dan Windows (x64).
Pengguna Linux — Kernel versi 5.6 atau lebih tinggi sangat disarankan, tetapi minimumnya adalah 5.1.
# dengan skrip instalasi (disarankan)curl -fsSL https://bun.sh/install | bash# di windowspowershell -c "irm bun.sh/install.ps1 | iex"# dengan npmnpm install -g bun# dengan Homebrewbrew ketuk oven-sh/bun brew install bun# dengan Dockerdocker pull oven/bun docker run --rm --init --ulimit memlock=-1:-1 oven/roti
Untuk meningkatkan ke versi terbaru Bun, jalankan:
peningkatan roti
Bun secara otomatis merilis build canary pada setiap komit ke main
. Untuk meningkatkan ke versi canary terbaru, jalankan:
peningkatan roti --canary
Lihat bangunan kenari
Pendahuluan
Apa itu Bun?
Instalasi
Mulai cepat
Skrip Ketik
Templat
bun init
bun create
Waktu proses
bun run
Jenis berkas
Skrip Ketik
BEJ
Variabel lingkungan
Bun API
API Web
Kompatibilitas Node.js
File tunggal dapat dieksekusi
Plugin
Modus tontonan
Resolusi modul
Instal otomatis
bunfig.toml
debug
Kerangka API
Manajer paket
bun install
bun add
bun remove
bun update
bun link
bun pm
Tembolok global
Ruang kerja
Skrip siklus hidup
Menyaring
File kunci
Cakupan dan registrasi
Penggantian dan resolusi
Bundel
Bun.build
Loader
Plugin
Makro
vs esbuild
Pelari ujian
bun test
Tes menulis
Modus tontonan
Kait siklus hidup
Mengolok-olok
Jepretan
Tanggal dan waktu
pengujian DOM
Cakupan kode
Pelari paket
bunx
API
server HTTP
soket web
Pekerja
Data biner
Aliran
File I/O
impor.meta
SQLite
FileSystemRouter
soket TCP
soket UDP
Global
$ cangkang
Proses anak
transpiler
hashing
Menghibur
FFI
Penulis Ulang HTML
Pengujian
kegunaan
Node-API
Gumpal
Semver
Proyek
Peta jalan
Pembandingan
Berkontribusi
Membangun Jendela
Lisensi
Biner
Ubah Blob menjadi DataView
Ubah Blob menjadi ReadableStream
Ubah Blob menjadi string
Ubah Blob menjadi Uint8Array
Ubah Blob menjadi ArrayBuffer
Ubah Buffer menjadi gumpalan
Ubah Buffer menjadi ReadableStream
Ubah Buffer menjadi string
Ubah Buffer menjadi Uint8Array
Ubah Buffer menjadi ArrayBuffer
Ubah DataView menjadi string
Ubah Uint8Array menjadi Blob
Ubah Uint8Array menjadi Buffer
Ubah Uint8Array menjadi DataView
Ubah Uint8Array menjadi ReadableStream
Ubah Uint8Array menjadi string
Ubah Uint8Array menjadi ArrayBuffer
Ubah ArrayBuffer menjadi Blob
Ubah ArrayBuffer menjadi Buffer
Ubah ArrayBuffer menjadi string
Ubah ArrayBuffer menjadi Uint8Array
Ubah ArrayBuffer menjadi array angka
Ekosistem
Bangun frontend menggunakan Vite dan Bun
Bangun aplikasi dengan Astro dan Bun
Bangun aplikasi dengan Next.js dan Bun
Bangun aplikasi dengan Nuxt dan Bun
Bangun aplikasi dengan Qwik dan Bun
Bangun aplikasi dengan Remix dan Bun
Bangun aplikasi dengan SolidStart dan Bun
Bangun aplikasi dengan SvelteKit dan Bun
Bangun server HTTP menggunakan Elysia dan Bun
Bangun server HTTP menggunakan Express dan Bun
Bangun server HTTP menggunakan Hono dan Bun
Bangun server HTTP menggunakan StricJS dan Bun
Masukkan aplikasi Bun ke dalam container dengan Docker
Buat bot Perselisihan
Deploy aplikasi Bun pada Render
Membaca dan menulis data ke MongoDB menggunakan Mongoose dan Bun
Jalankan Bun sebagai daemon dengan PM2
Jalankan Bun sebagai daemon dengan systemd
Render sisi server (SSR) komponen React
Gunakan Gerimis ORM dengan Bun
Gunakan EdgeDB dengan Bun
Gunakan Postgres Tanpa Server Neon dengan Bun
Gunakan Prisma dengan Bun
Gunakan React dan JSX
Tambahkan Sentry ke aplikasi Bun
HTTP
Penggunaan server HTTP umum
Konfigurasikan TLS di server HTTP
ambil dengan soket domain unix di Bun
Muat ulang server HTTP secara panas
Proksi permintaan HTTP menggunakan ambil()
Kirim permintaan HTTP menggunakan pengambilan
Mulai sekelompok server HTTP
Streaming file sebagai Respons HTTP
Streaming Server HTTP dengan Async Iterator
Streaming Server HTTP dengan Aliran Node.js
Unggah file melalui HTTP menggunakan FormData
Tulis server HTTP sederhana
Memasang
Tambahkan ketergantungan
Tambahkan ketergantungan pengembangan
Tambahkan ketergantungan Git
Tambahkan ketergantungan rekan
Tambahkan ketergantungan tarball
Tambahkan ketergantungan tepercaya
Tambahkan ketergantungan opsional
Konfigurasikan registri pribadi untuk lingkup organisasi dengan bun install
Konfigurasikan git untuk membedakan file kunci lockb Bun
Mengonfigurasi monorepo menggunakan ruang kerja
Hasilkan file kunci yang dapat dibaca manusia
Instal paket dengan nama yang berbeda
Instal dependensi dengan Bun di GitHub Actions
Ganti registri npm default untuk pemasangan bun
Menggunakan bun install dengan registri npm Azure Artifacts
Menggunakan bun install dengan Artifactory
Proses
Dapatkan waktu aktif proses dalam nanodetik
Dengarkan CTRL+C
Dengarkan sinyal OS
Parsing argumen baris perintah
Baca dari stdin
Baca stderr dari proses anak
Baca stdout dari proses anak
Memunculkan proses anak
Memunculkan proses anak dan berkomunikasi menggunakan IPC
Baca berkas
Periksa apakah ada file
Dapatkan jenis file MIME
Membaca file sebagai ReadableStream
Membaca file sebagai string
Membaca file ke Buffer
Membaca file ke Uint8Array
Membaca file ke ArrayBuffer
Membaca file JSON
Perhatikan direktori untuk melihat perubahan
Waktu proses
Debugging Bun dengan ekstensi VS Code
Men-debug Bun dengan web debugger
Tentukan dan ganti global & konstanta statis
Impor file JSON
Impor file TOML
Impor file HTML sebagai teks
Instal dan jalankan Bun di GitHub Actions
Instal deklarasi TypeScript untuk Bun
Memetakan ulang jalur impor
Baca variabel lingkungan
Jalankan Perintah Shell
Tetapkan zona waktu di Bun
Tetapkan variabel lingkungan
Aliran
Ubah Node.js yang Dapat Dibaca menjadi Blob
Konversikan Node.js Readable menjadi string
Ubah Node.js Readable menjadi ArrayBuffer
Konversikan Node.js yang Dapat Dibaca ke JSON
Ubah ReadableStream menjadi Blob
Ubah ReadableStream menjadi Buffer
Ubah ReadableStream menjadi string
Ubah ReadableStream menjadi Uint8Array
Konversikan ReadableStream menjadi array potongan
Ubah ReadableStream menjadi ArrayBuffer
Konversikan ReadableStream ke JSON
Tes
Jaminan lebih awal dengan pelari tes Bun
Hasilkan laporan cakupan kode dengan runner pengujian Bun
Tandai tes sebagai "tugas yang harus dilakukan" dengan pelari tes Bun
Bermigrasi dari test runner Jest ke Bun
Fungsi tiruan dalam bun test
Jalankan kembali pengujian beberapa kali dengan pelari pengujian Bun
Jalankan tes dalam mode tontonan dengan Bun
Jalankan pengujian Anda dengan pelari pengujian Bun
Tetapkan ambang batas cakupan kode dengan runner pengujian Bun
Tetapkan batas waktu per pengujian dengan pelari pengujian Bun
Atur waktu sistem di test runner Bun
Lewati tes dengan pelari tes Bun
Memata-matai metode dalam bun test
Perbarui snapshot dalam bun test
Gunakan pengujian snapshot dalam bun test
Tulis tes DOM browser dengan Bun dan happy-dom
Memanfaatkan
Periksa apakah file saat ini adalah titik masuk
Periksa apakah dua objek sangat setara
Kompres dan dekompresi data dengan DEFLATE
Kompres dan dekompresi data dengan gzip
Konversikan URL file menjadi jalur absolut
Konversikan jalur absolut ke URL file
Deteksi kapan kode dieksekusi dengan Bun
Mengkodekan dan mendekode string base64
Keluar dari string HTML
Dapatkan jalur absolut dari file saat ini
Dapatkan jalur absolut ke titik masuk saat ini
Dapatkan versi Bun saat ini
Dapatkan direktori file saat ini
Dapatkan nama file dari file saat ini
Dapatkan jalur ke file bin yang dapat dieksekusi
Hash kata sandi
Tidur selama beberapa milidetik
Soket Web
Bangun server WebSocket terbitkan-langganan
Bangun server WebSocket sederhana
Aktifkan kompresi untuk pesan WebSocket
Tetapkan data kontekstual per soket di WebSocket
Tulis berkas
Tambahkan konten ke file
Salin file ke lokasi lain
Hapus file
Tulis Blob ke file
Tulis file secara bertahap
Tulis file ke stdout
Tulis ReadableStream ke file
Tulis Respons ke file
Tulis string ke file
Menulis ke stdout
Lihat panduan Proyek > Berkontribusi untuk mulai berkontribusi pada Bun.
Lihat halaman Proyek > Lisensi untuk informasi tentang lisensi Bun.