build: 改成 Bun workspaces 的 monorepo
- 根目录新增 package.json(workspaces: client、server),两边共用一个 bun.lock, 依赖版本与原来两个 lockfile 完全一致 - 根目录脚本:bun run dev / build / build:staging / test / typecheck / fmt, 取代 dev.sh;client 的 start 改名为 dev,包名改为 webpreview-client - workspaces 用 isolated 安装,补上 client 一直直接 import 却没声明的 @codemirror/view - server 镜像改用仓库根目录做构建上下文,只装 server 的依赖; .dockerignore 用白名单,不再把 node_modules、数据库等发给 docker - CI 在根目录安装并构建前端 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a69ee16004
commit
4014aaabbf
10 files changed
+115
-137
No files matched your search
+8
-4
@@ -1,3 +1,4 @@
|
||||
# 构建上下文是仓库根目录(见 docker-compose.yaml),只装 server 这个 workspace 的依赖
|
||||
FROM oven/bun:1.4.4-alpine
|
||||
|
||||
WORKDIR /app
|
||||
@@ -7,11 +8,14 @@ ARG NPM_REGISTRY=https://registry.npmmirror.com
|
||||
ENV BUN_CONFIG_REGISTRY=$NPM_REGISTRY
|
||||
|
||||
COPY package.json bun.lock ./
|
||||
RUN bun install --frozen-lockfile --production
|
||||
COPY client/package.json client/
|
||||
COPY server/package.json server/
|
||||
RUN bun install --frozen-lockfile --production --filter webpreview-server
|
||||
|
||||
COPY tsconfig.json ./
|
||||
COPY src ./src
|
||||
COPY scripts ./scripts
|
||||
WORKDIR /app/server
|
||||
COPY server/tsconfig.json ./
|
||||
COPY server/src ./src
|
||||
COPY server/scripts ./scripts
|
||||
|
||||
ENV ENV=production \
|
||||
PORT=8000 \
|
||||
|
||||
Reference in new issue
Block a user