Bun (실험적)

목표: pnpm 워크플로우와 차이를 두지 않으면서 Bun으로 이 저장소를 실행합니다(선택사항, WhatsApp/Telegram에는 비권장).

⚠️ 게이트웨이 런타임으로는 권장하지 않습니다 (WhatsApp/Telegram 버그 발생 가능). 프로덕션에서는 Node를 사용하세요.

현황

  • Bun은 TypeScript를 직접 실행(bun run …, bun --watch …)하기 위한 선택적 로컬 런타임입니다.
  • pnpm이 빌드의 기본이며 여전히 완전히 지원됩니다(일부 문서 도구에서도 사용됨).
  • Bun은 pnpm-lock.yaml을 사용할 수 없으며 무시합니다.

설치

기본 설치:

bun install

참고: bun.lock/bun.lockb는 gitignore에 포함되어 있으므로 어떤 방식이든 저장소에 변경이 생기지 않습니다. 락파일 쓰기를 _완전히 방지_하고 싶다면:

bun install --no-save

빌드 / 테스트 (Bun)

bun run build
bun run vitest run

Bun 라이프사이클 스크립트 (기본적으로 차단됨)

Bun은 명시적으로 신뢰하지 않은 의존성의 라이프사이클 스크립트를 차단할 수 있습니다(bun pm untrusted / bun pm trust). 이 저장소에서 일반적으로 차단되는 스크립트는 필수가 아닙니다:

  • @whiskeysockets/baileys preinstall: Node 메이저 버전 >= 20 확인 (OpenClaw 기본값은 Node 24이며 Node 22 LTS, 현재 22.16+도 지원)
  • protobufjs postinstall: 호환되지 않는 버전 체계 경고 출력 (빌드 산출물 없음)

이 스크립트가 필요한 런타임 문제가 발생하면 명시적으로 신뢰하세요:

bun pm trust @whiskeysockets/baileys protobufjs

주의사항

  • 일부 스크립트는 여전히 pnpm이 하드코딩되어 있습니다(예: docs:build, ui:*, protocol:check). 해당 스크립트는 당분간 pnpm으로 실행하세요.