Monorepo 구축을 위한 Bun 활용
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
JavaScript/TypeScript 개발자, Monorepo 구조를 사용하는 프로젝트 개발자
핵심 요약
- Bun은 JavaScript 런타임, 패키지 관리자, Monorepo 도구로 하나의 명령어로 TypeScript 투명, 빌드, 배포 가능
- Monorepo 구조에서 공유 라이브러리 사용 시
@kiffarino/shared
와 같이 워크스페이스 설정으로 간단히 연결 가능 bun build
명령어로 단일 실행 파일 생성 가능하며, npm 호환성 보장
섹션별 세부 요약
1. 프로젝트 배경 및 Bun 도입 동기
- 기존 TypeScript 프로젝트 설정 과정에서 반복적인 설정 과정(npm, tsconfig, ts-node)이 번거로움
- Monorepo 구조에서 공유 라이브러리 사용 시 복잡한 보일러플레이트 설정 필요
- Bun을 활용하여 런타임, 패키지 관리, Monorepo 도구로 통합된 환경 구축
2. Kiffarino 프로젝트 구조
- Hono 백엔드, Svelte5 SPA, 공유 라이브러리(@kiffarino/shared)로 구성
- 공유 라이브러리에서
index.ts
파일을 통해 타입 및 함수 공유 - 워크스페이스 설정(
packages.json
에"workspaces": ["be", "web", "shared"]
)을 통해 모듈 간 연결
3. Bun 기반 빌드 및 실행
- 빌드 명령:
"build": "bun build ./src/index.ts --outdir ./dist/ --target node"
- 타입스크립트 투명, 빌드, 실행이 하나의 명령어로 가능
- npm 호환으로 패키지 출판 가능
4. 스크립트 동시 실행 및 타입체크
- 동시 실행:
"dev": "bun --filter '' dev"
,"check": "bun --filter '' check"
- 타입체크:
"check": "bunx tsc --noEmit -p tsconfig.json"
명령어로 수행
결론
Bun은 Monorepo 환경에서 TypeScript 프로젝트 개발을 간소화하며, 하나의 도구로 런타임, 패키지 관리, 빌드, 배포까지 처리 가능. 기존의 복잡한 설정 과정을 줄이고 개발 생산성 향상에 기여.