---
read_when:
    - คุณต้องการวงจรการพัฒนาในเครื่องที่เร็วที่สุด (bun + watch)
    - คุณพบปัญหาเกี่ยวกับสคริปต์การติดตั้ง/แพตช์/วงจรการทำงานของ Bun
summary: 'เวิร์กโฟลว์ Bun (ทดลอง): การติดตั้งและข้อควรระวังเมื่อเทียบกับ pnpm'
title: Bun (รุ่นทดลอง)
x-i18n:
    generated_at: "2026-07-12T16:18:09Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: b836be354166ceb073d170e472e8b69c3f517e754fe71417df1d85d27a18ae94
    source_path: install/bun.md
    workflow: 16
---

<Warning>
ไม่แนะนำให้ใช้ Bun เป็นรันไทม์ของ Gateway (มีปัญหาที่ทราบแล้วกับ WhatsApp และ Telegram) โปรดใช้ Node สำหรับระบบใช้งานจริง
</Warning>

Bun เป็นรันไทม์ภายในเครื่องที่เลือกใช้ได้สำหรับเรียกใช้ TypeScript โดยตรง (`bun run ...`, `bun --watch ...`) ตัวจัดการแพ็กเกจเริ่มต้นยังคงเป็น `pnpm` ซึ่งได้รับการรองรับอย่างเต็มรูปแบบและใช้โดยเครื่องมือจัดทำเอกสาร Bun ไม่สามารถใช้ `pnpm-lock.yaml` และจะเพิกเฉยต่อไฟล์ดังกล่าว

## การติดตั้ง

<Steps>
  <Step title="ติดตั้งการขึ้นต่อกัน">
    ```sh
    bun install
    ```

    `bun.lock` / `bun.lockb` ถูกกำหนดให้ Git เพิกเฉย จึงไม่ทำให้เกิดการเปลี่ยนแปลงที่ไม่จำเป็นในที่เก็บ หากต้องการข้ามการเขียนไฟล์ล็อกทั้งหมด:

    ```sh
    bun install --no-save
    ```

  </Step>
  <Step title="บิลด์และทดสอบ">
    ```sh
    bun run build
    bun run vitest run
    ```
  </Step>
</Steps>

## สคริปต์วงจรชีวิต

Bun จะบล็อกสคริปต์วงจรชีวิตของการขึ้นต่อกัน เว้นแต่จะกำหนดให้เชื่อถืออย่างชัดเจน สำหรับที่เก็บนี้ สคริปต์ที่มักถูกบล็อกไม่จำเป็นต้องใช้:

- `baileys` `preinstall`: ตรวจสอบว่าเวอร์ชันหลักของ Node >= 20 (OpenClaw ต้องใช้ Node 22.19+ หรือ 23.11+ และแนะนำให้ใช้ Node 24)
- `protobufjs` `postinstall`: แสดงคำเตือนเกี่ยวกับรูปแบบเวอร์ชันที่เข้ากันไม่ได้ (ไม่มีอาร์ติแฟกต์จากการบิลด์)

หากพบปัญหาระหว่างการทำงานที่จำเป็นต้องใช้สคริปต์เหล่านี้ ให้กำหนดให้เชื่อถืออย่างชัดเจน:

```sh
bun pm trust baileys protobufjs
```

## ข้อควรระวัง

สคริปต์ของแพ็กเกจบางรายการกำหนด `pnpm` ไว้ตายตัวภายใน (เช่น `check:docs`, `ui:*`, `protocol:check`) การเรียกใช้ผ่าน `bun run` จะยังคงเรียก `pnpm` ผ่านเชลล์ ดังนั้นให้เรียกใช้สคริปต์เหล่านั้นผ่าน `pnpm` โดยตรง

## เนื้อหาที่เกี่ยวข้อง

- [ภาพรวมการติดตั้ง](/th/install)
- [Node.js](/th/install/node)
- [การอัปเดต](/th/install/updating)
