Skip to content

Commit 251de33

Browse files
Merge pull request #17 from first-fluke/migrate-to-bun-621637979624926172
Migrate from pnpm to Bun for web and packages
2 parents b7bfc60 + 980f293 commit 251de33

18 files changed

Lines changed: 1856 additions & 8487 deletions

.github/workflows/deploy-web.yml

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,22 @@ jobs:
2525
steps:
2626
- uses: actions/checkout@v4
2727

28-
- name: Install pnpm
29-
uses: pnpm/action-setup@v4
28+
- name: Install Bun
29+
uses: oven-sh/setup-bun@v2
3030
with:
31-
version: 10
32-
33-
- name: Set up Node.js
34-
uses: actions/setup-node@v4
35-
with:
36-
node-version: "24"
37-
cache: "pnpm"
38-
cache-dependency-path: apps/web/pnpm-lock.yaml
31+
bun-version: latest
3932

4033
- name: Install dependencies
41-
run: pnpm install --frozen-lockfile
34+
run: bun install --frozen-lockfile
4235

4336
- name: Run linter
44-
run: pnpm lint
37+
run: bun run lint
4538

4639
- name: Run type check
47-
run: pnpm typecheck
40+
run: bun run typecheck
4841

4942
- name: Run tests
50-
run: pnpm test
43+
run: bun run test
5144

5245
build-and-deploy:
5346
needs: test

.github/workflows/review.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ jobs:
3232
Note this PR might be rejected due to its size.
3333
github_api_url: "https://api.github.com"
3434
files_to_ignore: |
35-
pnpm-lock.yaml
36-
**/pnpm-lock.yaml
35+
bun.lock
36+
**/bun.lock
3737
package-lock.json
3838
**/package-lock.json
3939
yarn.lock
@@ -63,19 +63,13 @@ jobs:
6363
steps:
6464
- uses: actions/checkout@v4
6565

66-
- uses: pnpm/action-setup@v4
66+
- uses: oven-sh/setup-bun@v2
6767
with:
68-
version: 10
69-
70-
- uses: actions/setup-node@v4
71-
with:
72-
node-version: 24
73-
cache: pnpm
74-
cache-dependency-path: apps/web/pnpm-lock.yaml
68+
bun-version: latest
7569

7670
- name: Install dependencies
7771
working-directory: apps/web
78-
run: pnpm install --frozen-lockfile
72+
run: bun install --frozen-lockfile
7973

8074
- uses: reviewdog/action-setup@v1
8175

@@ -84,7 +78,7 @@ jobs:
8478
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
8579
working-directory: apps/web
8680
run: |
87-
pnpm biome check src --reporter=json 2>&1 | \
81+
bun run biome check src --reporter=json 2>&1 | \
8882
jq -r '.diagnostics[] | {
8983
message: .message,
9084
location: {

README.ko.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ graph TB
8282

8383
```bash
8484
# CLI로 생성하기
85-
pnpm create fullstack-starter my-app
85+
bun create fullstack-starter my-app
8686
# 또는
8787
npm create fullstack-starter my-app
8888
```
@@ -111,7 +111,7 @@ npm create fullstack-starter my-app
111111
# mise 설치 (미설치 시)
112112
curl https://mise.run | sh
113113

114-
# 모든 런타임 일괄 설치 (Node 24, Python 3.12, Flutter 3, pnpm 10, uv, Terraform)
114+
# 모든 런타임 일괄 설치 (Node 24, Python 3.12, Flutter 3, bun, uv, Terraform)
115115
mise install
116116
```
117117

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Choose one of the following methods to start with this template:
8282

8383
```bash
8484
# Create from CLI
85-
pnpm create fullstack-starter my-app
85+
bun create fullstack-starter my-app
8686
# or
8787
npm create fullstack-starter my-app
8888
```
@@ -111,7 +111,7 @@ Or use GitHub:
111111
# Install mise (if not installed)
112112
curl https://mise.run | sh
113113

114-
# Install all runtimes (Node 24, Python 3.12, Flutter 3, pnpm 10, uv, Terraform)
114+
# Install all runtimes (Node 24, Python 3.12, Flutter 3, bun, uv, Terraform)
115115
mise install
116116
```
117117

apps/web/Dockerfile

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
# syntax=docker/dockerfile:1
2-
FROM node:24-alpine AS base
3-
RUN corepack enable && corepack prepare pnpm@10.11.0 --activate
2+
FROM oven/bun:1-alpine AS base
43

54
FROM base AS deps
65
WORKDIR /app
7-
COPY package.json pnpm-lock.yaml ./
8-
RUN --mount=type=cache,target=/root/.local/share/pnpm/store \
9-
pnpm install --frozen-lockfile
6+
COPY package.json bun.lock ./
7+
RUN bun install --frozen-lockfile
108

119
FROM base AS builder
1210
WORKDIR /app
@@ -18,7 +16,7 @@ ARG NEXT_PUBLIC_BETTER_AUTH_URL
1816
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
1917
ENV NEXT_PUBLIC_BETTER_AUTH_URL=$NEXT_PUBLIC_BETTER_AUTH_URL
2018

21-
RUN pnpm build
19+
RUN bun run build
2220

2321
FROM base AS runner
2422
WORKDIR /app
@@ -36,4 +34,4 @@ EXPOSE 3000
3634
ENV PORT=3000
3735
ENV HOSTNAME="0.0.0.0"
3836

39-
CMD ["node", "server.js"]
37+
CMD ["bun", "server.js"]

apps/web/bun.lock

Lines changed: 1472 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/web/mise.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[tasks]
2-
dev = { run = "pnpm dev", description = "Start Web server" }
3-
build = { run = "pnpm build", description = "Build Web app" }
4-
install = { run = "pnpm install", description = "Install dependencies", sources = ["package.json", "pnpm-lock.yaml"] }
5-
lint = { run = "pnpm lint", description = "Lint Web" }
6-
format = { run = "pnpm format", description = "Format Web" }
7-
test = { run = "pnpm test", description = "Test Web" }
8-
typecheck = { run = "pnpm typecheck", description = "Type check Web" }
9-
"gen:api" = { run = "pnpm gen:api", description = "Generate API client" }
2+
dev = { run = "bun run dev", description = "Start Web server" }
3+
build = { run = "bun run build", description = "Build Web app" }
4+
install = { run = "bun install", description = "Install dependencies", sources = ["package.json", "bun.lock"] }
5+
lint = { run = "bun run lint", description = "Lint Web" }
6+
format = { run = "bun run format", description = "Format Web" }
7+
test = { run = "bun run test", description = "Test Web" }
8+
typecheck = { run = "bun run typecheck", description = "Type check Web" }
9+
"gen:api" = { run = "bun run gen:api", description = "Generate API client" }

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.1.0",
44
"private": true,
55
"type": "module",
6-
"packageManager": "pnpm@10.11.0",
6+
"packageManager": "bun@1.2.14",
77
"scripts": {
88
"dev": "next dev --turbopack",
99
"build": "next build",

0 commit comments

Comments
 (0)