bun 설치와 사용법: 설치, 스크립트 실행, 패키지 추가, 첫 프로젝트
공식 절차로 bun을 설치하고 스크립트를 실행한 뒤, 패키지 하나를 추가하고 bun init으로 첫 프로젝트를 시작한다.
로컬에서 bun으로 JavaScript나 TypeScript를 실행하려면 네 가지를 먼저 끝낸다. 공식 설치, bun으로 스크립트, bun add로 패키지 하나, bun init으로 첫 프로젝트.
bun.sh/docs/installation을 따르고 패키지 이름을 짐작하지 않는다. 검색어는 bun 설치, bun add, bun init. 설치는 bun.sh.
OS에 맞춰 공식 바이너리를 설치한다
macOS와 Linux
공식 스크립트: curl -fsSL https://bun.sh/install | bash. 또는 brew install oven-sh/bun/bun. 새 터미널에서 bun --version.
Windows
PowerShell: powershell -c "irm bun.sh/install.ps1 | iex". 새 세션에서 bun이 PATH에 있는지 확인한다.
| 단계 | 명령 | 주의 |
|---|---|---|
| 설치 | bun --version | 현재 셸이 공식 바이너리를 찾아야 함 |
| 실행 | bun hello.ts | .js / .ts를 바로 실행. 먼저 컴파일할 필요 없음 |
| 의존성 | bun add zod | 이름은 npm registry. lockfile이 갱신됨 |
| 생성 | bun init | package.json이 생겨야 함 |
설치, 실행, 패키지 추가, 생성
- 01설치하고 버전을 확인한다
bun.sh/docs/installation의 스크립트 또는 Homebrew.
bun --version이 버전을 찍어야 한다. 명령이 없으면 새 터미널과 PATH. 업그레이드는bun upgrade. - 02스크립트를 실행한다
hello.ts(또는hello.js)를 쓰고bun hello.ts. bun은 런타임을 포함하므로 먼저 tsc가 필요 없다. package.json 스크립트는bun run <script>. - 03패키지 하나를 추가한다
프로젝트에서 예로
bun add zod. bun이 의존성을 풀고 lockfile을 쓴다. 실패하면 패키지명과 네트워크. 반쯤 쓴 lockfile을 손으로 고치지 않는다. - 04첫 프로젝트를 시작한다
빈 폴더에서
bun init. 안내에 따라package.json과 진입 파일이 생긴다. 그다음bun run또는bun index.ts. 기존 저장소는bun install.
curl -fsSL https://bun.sh/install | bash
bun --version
printf 'console.log("ok")\n' > hello.ts
bun hello.ts
mkdir myproject && cd myproject
bun init
bun add zod
# 진입 파일을 쓴 뒤:
bun index.ts- 공식 설치 스크립트가 필수인가?
- 아니다. 문서에 Homebrew, npm, Scoop 등도 있다. 하나를 고르고 bun --version으로 확인한다. PATH를 다투는 여러 복사본을 섞지 않는다.
- TypeScript를 돌리려면 먼저 Node가 필요한가?
- 일상에는 필요 없다. bun은 런타임을 갖고 .ts를 바로 실행한다. 스크립트가 node로 고정되어 있으면 공식 호환 설명을 본다.
- bun add와 npm install의 차이는?
- 둘 다 의존성을 더한다. bun add는 bun 해석기와 lockfile(bun.lock)을 쓴다. 같은 디렉터리에서 npm / pnpm / bun 잠금 파일을 섞지 않는다.
- 설치하면 공유 그림을 대체하는가?
- 아니다. 로컬 JavaScript 툴체인이다. 회의가 같은 그림이면 sitdraw를 연다.
먼저 bun을 PATH에 넣는다
bun --version이 될 때까지 실패한 init을 템플릿 버그로 보지 않는다. 대부분은 설치 스크립트가 바꾼 PATH를 현재 셸이 읽지 않은 것이다.