From 08f186a71e649e6c4312cfc55795cf89a022f895 Mon Sep 17 00:00:00 2001 From: Takumi Akimoto Date: Mon, 11 May 2026 13:07:11 +0900 Subject: [PATCH] Bundle code to decrease V8 overhead --- .gitignore | 1 + Dockerfile | 11 +++++------ deno.jsonc | 1 + scripts/dev.ts | 6 ++++++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index bc9b0e3..61d9b86 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ _fresh/ +dist/ traq/ .env diff --git a/Dockerfile b/Dockerfile index 76fc816..3dd9b63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,22 +5,21 @@ WORKDIR /app RUN --mount=type=bind,source=deno.jsonc,target=deno.jsonc \ --mount=type=bind,source=deno.lock,target=deno.lock \ + --mount=type=cache,target=/deno-dir/ \ deno install --frozen COPY . . -RUN deno task build +RUN --mount=type=cache,target=/deno-dir/ \ + deno task build FROM ghcr.io/denoland/deno:distroless-2.7.14 WORKDIR /app -COPY --from=builder /app/ ./ -# Copy installed dependencies -COPY --from=builder /deno-dir/ /deno-dir/ +COPY --from=builder /app/dist/ ./ EXPOSE 8000 ARG GIT_REVISION ENV DENO_DEPLOYMENT_ID=${GIT_REVISION} - -CMD ["serve", "--allow-env", "--allow-net", "--allow-read", "./_fresh/server.js"] +CMD ["serve", "--allow-env", "--allow-net", "--allow-read", "./server.js"] diff --git a/deno.jsonc b/deno.jsonc index 2685b75..8815ed6 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -42,6 +42,7 @@ "dev": "deno run --env-file -A scripts/dev.ts" }, "unstable": [ + "bundle", "raw-imports", // magick-wasm (compiled by Emscripten) requires file URL or raw bytes import "sloppy-imports" // Required for generated traQ client code ] diff --git a/scripts/dev.ts b/scripts/dev.ts index 2c42445..ce7214b 100644 --- a/scripts/dev.ts +++ b/scripts/dev.ts @@ -14,6 +14,12 @@ const builder = new Builder({ if (Deno.args.includes("build")) { await builder.build() + await Deno.bundle({ + codeSplitting: true, + entrypoints: ["./_fresh/server.js"], + outputDir: "./dist", + platform: "deno", + }) } else { await builder.listen(() => import("../src/main.ts")) } -- 2.51.2