เอกสารประกอบ • ความไม่ลงรอยกัน • ปัญหา • แผนงาน
Bun เป็นชุดเครื่องมือแบบครบวงจรสำหรับแอป JavaScript และ TypeScript มันจัดส่งเป็นไฟล์ปฏิบัติการเดียวที่เรียกว่า bun
หัวใจสำคัญของมันคือ Bun runtime ซึ่งเป็นรันไทม์ JavaScript ที่รวดเร็วซึ่งออกแบบมาเพื่อทดแทน Node.js แบบดรอปอิน เขียนด้วยภาษา Zig และขับเคลื่อนโดย JavaScriptCore ภายใต้ประทุน ซึ่งช่วยลดเวลาการเริ่มต้นและการใช้หน่วยความจำได้อย่างมาก
bun run index.tsx # TS และ JSX รองรับทันที
เครื่องมือบรรทัดคำสั่ง bun
ยังใช้ตัวดำเนินการทดสอบ ตัวดำเนินการสคริปต์ และตัวจัดการแพ็คเกจที่เข้ากันได้กับ Node.js แทนที่จะมี 1,000 node_modules สำหรับการพัฒนา คุณเพียงต้องการ bun
เท่านั้น เครื่องมือในตัวของ Bun เร็วกว่าตัวเลือกที่มีอยู่อย่างมาก และใช้งานได้ในโปรเจ็กต์ Node.js ที่มีอยู่โดยมีการเปลี่ยนแปลงเพียงเล็กน้อยหรือไม่มีเลย
bun test # run testsbun run start # รันสคริปต์ `start` ใน `package.json`bun ติดตั้ง <pkg> # ติดตั้ง packagebunx cowsay 'Hello, world!' #ดำเนินการแพ็คเก็จ
Bun รองรับ Linux (x64 & arm64), macOS (x64 & Apple Silicon) และ Windows (x64)
ผู้ใช้ Linux — แนะนำให้ใช้เคอร์เนลเวอร์ชัน 5.6 หรือสูงกว่า แต่ขั้นต่ำคือ 5.1
# พร้อมสคริปต์การติดตั้ง (แนะนำ)curl -fsSL https://bun.sh/install | bash# บน windowspowershell -c "irm bun.sh/install.ps1 | iex"# พร้อม npmnpm ติดตั้ง -g bun# พร้อม Homebrewbrew tap oven-sh/bun ชงติดตั้ง bun# ด้วย Dockerdocker pull oven/bun นักเทียบท่าวิ่ง --rm --init --ulimit memlock=-1:-1 เตาอบ/ขนมปัง
หากต้องการอัปเกรดเป็น Bun เวอร์ชันล่าสุด ให้รัน:
อัพเกรดขนมปัง
Bun จะเผยแพร่ canary build โดยอัตโนมัติในทุก ๆ การคอมมิตไปยัง main
หากต้องการอัปเกรดเป็น canary build ล่าสุด ให้รัน:
อัปเกรดขนมปัง --canary
ดูการสร้างนกขมิ้น
บทนำ
บุญคืออะไร?
การติดตั้ง
เริ่มต้นอย่างรวดเร็ว
TypeScript
การสร้างเทมเพลต
bun init
bun create
รันไทม์
bun run
ประเภทไฟล์
TypeScript
เจเอสเอ็กซ์
ตัวแปรสภาพแวดล้อม
Bun API
เว็บ API
ความเข้ากันได้ของ Node.js
ไฟล์เดียวที่ปฏิบัติการได้
ปลั๊กอิน
โหมดรับชม
ความละเอียดของโมดูล
ติดตั้งอัตโนมัติ
bunfig.toml
ดีบักเกอร์
กรอบงาน API
ผู้จัดการแพ็คเกจ
bun install
bun add
bun remove
bun update
bun link
bun pm
แคชทั่วโลก
พื้นที่ทำงาน
สคริปต์วงจรการใช้งาน
กรอง
ล็อคไฟล์
ขอบเขตและการลงทะเบียน
การแทนที่และการแก้ปัญหา
บันเดิล
Bun.build
รถตัก
ปลั๊กอิน
มาโคร
เทียบกับการสร้าง
นักวิ่งทดสอบ
bun test
การทดสอบการเขียน
โหมดรับชม
ตะขอเกี่ยววงจรชีวิต
เยาะเย้ย
สแนปชอต
วันที่และเวลา
การทดสอบ DOM
ความครอบคลุมของรหัส
รองชนะเลิศอันดับแพ็คเกจ
bunx
เอพีไอ
เซิร์ฟเวอร์ HTTP
เว็บซ็อกเก็ต
คนงาน
ข้อมูลไบนารี
สตรีม
ไฟล์ I/O
นำเข้า.meta
SQLite
FileSystemRouter
ซ็อกเก็ต TCP
ซ็อกเก็ต UDP
โลกาภิวัตน์
$เชลล์
กระบวนการลูก
ทรานสปิเลอร์
การแฮช
คอนโซล
เอฟเอฟไอ
HTMLRewriter
การทดสอบ
ยูทิลิตี้
โหนด API
โลก
เซมเวอร์
โครงการ
แผนการทำงาน
การเปรียบเทียบ
มีส่วนร่วม
การสร้างหน้าต่าง
ใบอนุญาต
ไบนารี่
แปลง Blob เป็น DataView
แปลง Blob เป็น ReadableStream
แปลง Blob เป็นสตริง
แปลง Blob เป็น Uint8Array
แปลง Blob เป็น ArrayBuffer
แปลงบัฟเฟอร์ให้เป็นหยด
แปลงบัฟเฟอร์เป็น ReadableStream
แปลงบัฟเฟอร์ให้เป็นสตริง
แปลงบัฟเฟอร์เป็น Uint8Array
แปลงบัฟเฟอร์เป็น ArrayBuffer
แปลง DataView เป็นสตริง
แปลง Uint8Array เป็น Blob
แปลง Uint8Array เป็นบัฟเฟอร์
แปลง Uint8Array เป็น DataView
แปลง Uint8Array เป็น ReadableStream
แปลง Uint8Array เป็นสตริง
แปลง Uint8Array เป็น ArrayBuffer
แปลง ArrayBuffer เป็น Blob
แปลง ArrayBuffer เป็น Buffer
แปลง ArrayBuffer เป็นสตริง
แปลง ArrayBuffer เป็น Uint8Array
แปลง ArrayBuffer เป็นอาร์เรย์ของตัวเลข
ระบบนิเวศ
สร้างส่วนหน้าโดยใช้ Vite และ Bun
สร้างแอปด้วย Astro และ Bun
สร้างแอปด้วย Next.js และ Bun
สร้างแอปด้วย Nuxt และ Bun
สร้างแอปด้วย Qwik และ Bun
สร้างแอปด้วย Remix และ Bun
สร้างแอปด้วย SolidStart และ Bun
สร้างแอปด้วย SvelteKit และ Bun
สร้างเซิร์ฟเวอร์ HTTP โดยใช้ Elysia และ Bun
สร้างเซิร์ฟเวอร์ HTTP โดยใช้ Express และ Bun
สร้างเซิร์ฟเวอร์ HTTP โดยใช้ Hono และ Bun
สร้างเซิร์ฟเวอร์ HTTP โดยใช้ StricJS และ Bun
จัดทำแอปพลิเคชั่น Bun ด้วย Docker
สร้างบอท Discord
ปรับใช้แอปพลิเคชัน Bun บน Render
อ่านและเขียนข้อมูลไปยัง MongoDB โดยใช้ Mongoose และ Bun
เรียกใช้ Bun เป็น daemon ด้วย PM2
เรียกใช้ Bun เป็น daemon ด้วย systemd
การแสดงผลฝั่งเซิร์ฟเวอร์ (SSR) ส่วนประกอบ React
ใช้ Drizzle ORM กับขนมปัง
ใช้ EdgeDB กับ Bun
ใช้ Postgres แบบไร้เซิร์ฟเวอร์ของ Neon กับ Bun
ใช้ปริซึมกับบัน
ใช้ React และ JSX
เพิ่ม Sentry ลงในแอป Bun
HTTP
การใช้งานเซิร์ฟเวอร์ HTTP ทั่วไป
กำหนดค่า TLS บนเซิร์ฟเวอร์ HTTP
ดึงข้อมูลด้วยซ็อกเก็ตโดเมนยูนิกซ์ใน Bun
ฮอตรีโหลดเซิร์ฟเวอร์ HTTP
คำขอ HTTP ของพร็อกซีโดยใช้ fetch()
ส่งคำขอ HTTP โดยใช้การดึงข้อมูล
เริ่มต้นคลัสเตอร์ของเซิร์ฟเวอร์ HTTP
สตรีมไฟล์เป็นการตอบกลับ HTTP
สตรีมมิ่งเซิร์ฟเวอร์ HTTP ด้วย Async Iterators
การสตรีมเซิร์ฟเวอร์ HTTP ด้วย Node.js Streams
อัปโหลดไฟล์ผ่าน HTTP โดยใช้ FormData
เขียนเซิร์ฟเวอร์ HTTP อย่างง่าย
ติดตั้ง
เพิ่มการพึ่งพา
เพิ่มการพึ่งพาการพัฒนา
เพิ่มการพึ่งพา Git
เพิ่มการพึ่งพาเพียร์
เพิ่มการพึ่งพา tarball
เพิ่มการพึ่งพาที่เชื่อถือได้
เพิ่มการพึ่งพาที่เป็นทางเลือก
กำหนดค่ารีจิสทรีส่วนตัวสำหรับขอบเขตองค์กรด้วยการติดตั้ง Bun
กำหนดค่าคอมไพล์ให้แตกต่าง lockb lockfile ของ Bun
การกำหนดค่า monorepo โดยใช้พื้นที่ทำงาน
สร้างไฟล์ล็อคที่มนุษย์สามารถอ่านได้
ติดตั้งแพ็คเกจภายใต้ชื่ออื่น
ติดตั้งการพึ่งพาด้วย Bun ใน GitHub Actions
แทนที่รีจิสทรี npm เริ่มต้นสำหรับการติดตั้ง bun
การใช้การติดตั้ง bun กับรีจิสทรี Azure Artifacts npm
การใช้ bun ติดตั้งกับ Artifactory
กระบวนการ
รับเวลาทำงานของกระบวนการในหน่วยนาโนวินาที
ฟัง CTRL+C
ฟังสัญญาณ OS
แยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง
อ่านจาก stdin
อ่าน stderr จากกระบวนการลูก
อ่าน stdout จากกระบวนการลูก
วางไข่กระบวนการลูก
วางไข่กระบวนการลูกและสื่อสารโดยใช้ IPC
อ่านไฟล์
ตรวจสอบว่ามีไฟล์อยู่หรือไม่
รับไฟล์ประเภท MIME
อ่านไฟล์ในรูปแบบ ReadableStream
อ่านไฟล์เป็นสตริง
อ่านไฟล์ไปยังบัฟเฟอร์
อ่านไฟล์ไปยัง Uint8Array
อ่านไฟล์ไปยัง ArrayBuffer
อ่านไฟล์ JSON
ดูไดเร็กทอรีสำหรับการเปลี่ยนแปลง
รันไทม์
การดีบัก Bun ด้วยส่วนขยาย VS Code
การดีบัก Bun ด้วยเว็บดีบักเกอร์
กำหนดและแทนที่ค่าคงที่และค่าคงที่
นำเข้าไฟล์ JSON
นำเข้าไฟล์ TOML
นำเข้าไฟล์ HTML เป็นข้อความ
ติดตั้งและรัน Bun ใน GitHub Actions
ติดตั้งการประกาศ TypeScript สำหรับ Bun
แมปเส้นทางการนำเข้าอีกครั้ง
อ่านตัวแปรสภาพแวดล้อม
เรียกใช้คำสั่งเชลล์
ตั้งค่าเขตเวลาใน Bun
ตั้งค่าตัวแปรสภาพแวดล้อม
สตรีม
แปลง Node.js ที่อ่านได้เป็น Blob
แปลง Node.js ที่อ่านได้เป็นสตริง
แปลง Node.js ที่อ่านได้เป็น ArrayBuffer
แปลง Node.js ที่อ่านได้เป็น JSON
แปลง ReadableStream เป็น Blob
แปลง ReadableStream เป็นบัฟเฟอร์
แปลง ReadableStream เป็นสตริง
แปลง ReadableStream เป็น Uint8Array
แปลง ReadableStream เป็นอาร์เรย์ของชิ้นข้อมูล
แปลง ReadableStream เป็น ArrayBuffer
แปลง ReadableStream เป็น JSON
ทดสอบ
ประกันตัวเร็วกับนักวิ่งทดสอบบุญ
สร้างรายงานการครอบคลุมโค้ดด้วย Bun test runner
ทำเครื่องหมายการทดสอบว่าเป็น "สิ่งที่ต้องทำ" กับนักวิ่งทดสอบ Bun
ย้ายจาก Jest ไปยังนักวิ่งทดสอบของ Bun
ฟังก์ชั่นจำลองใน bun test
รันการทดสอบซ้ำหลายครั้งด้วย Bun test runner
รันการทดสอบในโหมดนาฬิกาด้วย Bun
ทำการทดสอบของคุณกับนักวิ่งทดสอบ Bun
กำหนดเกณฑ์การครอบคลุมโค้ดด้วย Bun test runner
ตั้งค่าการหมดเวลาต่อการทดสอบด้วย Bun test runner
ตั้งเวลาของระบบในตัวรันการทดสอบของ Bun
ข้ามการทดสอบกับนักวิ่งทดสอบ Bun
สอดแนมวิธีการใน bun test
อัปเดตสแนปชอตใน bun test
ใช้การทดสอบสแน็ปช็อตใน bun test
เขียนการทดสอบ DOM ของเบราว์เซอร์ด้วย Bun และ happy-dom
ยูทิลิตี้
ตรวจสอบว่าไฟล์ปัจจุบันเป็นจุดเข้าใช้งานหรือไม่
ตรวจสอบว่าวัตถุสองชิ้นมีค่าเท่ากันอย่างลึกซึ้งหรือไม่
บีบอัดและขยายข้อมูลด้วย DEFLATE
บีบอัดและขยายข้อมูลด้วย gzip
แปลง URL ของไฟล์เป็นเส้นทางที่แน่นอน
แปลงเส้นทางที่แน่นอนเป็น URL ของไฟล์
ตรวจจับเมื่อมีการรันโค้ดด้วย Bun
เข้ารหัสและถอดรหัสสตริง base64
หนีสตริง HTML
รับเส้นทางที่แน่นอนของไฟล์ปัจจุบัน
รับเส้นทางที่แน่นอนไปยังจุดเข้าปัจจุบัน
รับเวอร์ชัน Bun ปัจจุบัน
รับไดเร็กทอรีของไฟล์ปัจจุบัน
รับชื่อไฟล์ของไฟล์ปัจจุบัน
รับเส้นทางไปยังไฟล์ bin ที่ปฏิบัติการได้
แฮชรหัสผ่าน
เข้าสู่โหมดสลีปตามจำนวนมิลลิวินาทีที่กำหนด
เว็บซ็อกเก็ต
สร้างเซิร์ฟเวอร์ WebSocket ที่สมัครสมาชิกเผยแพร่
สร้างเซิร์ฟเวอร์ WebSocket อย่างง่าย
เปิดใช้งานการบีบอัดข้อความ WebSocket
ตั้งค่าข้อมูลตามบริบทต่อซ็อกเก็ตบน WebSocket
เขียนไฟล์
ผนวกเนื้อหาเข้ากับไฟล์
คัดลอกไฟล์ไปยังตำแหน่งอื่น
ลบไฟล์
เขียน Blob ลงในไฟล์
เขียนไฟล์ทีละน้อย
เขียนไฟล์ไปที่ stdout
เขียน ReadableStream ไปยังไฟล์
เขียนการตอบกลับไปยังไฟล์
เขียนสตริงลงในไฟล์
เขียนถึง stdout
โปรดดูโครงการ > คู่มือการบริจาคเพื่อเริ่มการบริจาคให้กับ Bun
โปรดดูหน้าโครงการ > ใบอนุญาตสำหรับข้อมูลเกี่ยวกับการออกใบอนุญาตของ Bun