bun-development은(는) 무엇을 하나요?
Bun 런타임을 사용한 빠르고 현대적인 JavaScript/TypeScript 개발, oven-sh/bun에서 영감을 받았습니다.
Bun은 JavaScript 및 TypeScript 애플리케이션을 위한 올인원 런타임입니다. 빠른 시작 시간, 기본 TypeScript 지원, 내장 패키지 매니저(bun), 번들러, 트랜스파일러를 제공합니다.
시작하기
Bun을 설치합니다:
curl -fsSL https://bun.sh/install | bash
또는 npm을 통해 전역 설치:
npm install -g bun
주요 명령어
| 명령어 | 설명 |
|---|---|
bun init | 새 프로젝트 초기화 (package.json 생성) |
bun add <package> | 의존성 추가 |
bun remove <package> | 의존성 제거 |
bun install | 의존성 설치 (package.json 기준) |
bun run <script> | package.json의 스크립트 실행 |
bun test | Bun 내장 테스트 러너 실행 |
bun start | 엔트리 포인트 실행 (보통 index.ts) |
bunx <package> | npx와 유사, 패키지를 직접 실행 |
TypeScript 지원
Bun은 TypeScript를 추가 설정 없이 기본 지원합니다. tsconfig.json이 필요 없습니다. 그러나 맞춤 설정이 필요하다면 bun init이 생성합니다.
예시 파일 (hello.ts):
const greeting: string = "Hello, Bun!";
console.log(greeting);
실행:
bun run hello.ts
환경 변수
Bun은 .env 파일을 자동으로 로드합니다. 파일에서 process.env로 접근 가능합니다.
# .env
DATABASE_URL="postgres://user:pass@localhost:5432/db"
console.log(process.env.DATABASE_URL);
번들링
Bun은 빠른 번들러를 내장하고 있습니다:
bun build ./src/index.ts --outdir ./dist
옵션
--target: 대상 환경 (bun,node,browser)--outfile: 단일 출력 파일--minify: 출력 크기 축소--sourcemap: 소스 맵 생성
스크립트 예시
package.json:
{
"name": "my-app",
"scripts": {
"dev": "bun --watch run index.ts",
"build": "bun build ./src --outdir ./dist",
"start": "bun run dist/index.js",
"test": "bun test"
}
}
마이그레이션 참고
Node.js 프로젝트에서 전환 시:
bun install로 의존성 재설치 (기존node_modules삭제 후 권장)process.env는 그대로 작동__dirname및__filename은 ESM에서 사용 가능 (import.meta.url변환으로)- 일부 네이티브 모듈은 호환되지 않을 수 있음 (
fs,path등은 정상 작동)