🚀

HonoxをNode.js Adapterでデプロイする

2024/02/20に公開

HonoXCloudflare Pagesへのデプロイをサポートしていますが他のプラットフォームへの対応はまだドキュメントに載っていません

しかしViteの設定を自由に書けるのでプラグインを用意して@hono/node-serverと統合することができます

以下のようなvite.config.tsとvite-node-server-plugin.tsというファイルを用意してデプロイしてみます

vite build --mode client && vite build
node dist/server.js

Listening on http://localhost:3000

DEMO: https://honox-node-server.fly.dev/
(IslandやSuspense,MDXが動作しているので大丈夫だろうということにしました)[1]

おまけ: Dockerfile

# syntax = docker/dockerfile:1

ARG NODE_VERSION=20.11.0
FROM node:${NODE_VERSION}-slim as base

LABEL fly_launch_runtime="Vite"

WORKDIR /app

ENV NODE_ENV="production"

FROM base as build

RUN apt-get update -qq && \
    apt-get install --no-install-recommends -y build-essential node-gyp pkg-config python-is-python3

COPY --link package.json ./
RUN npm install --include=dev

COPY --link . .

RUN npm run build

RUN npm prune --omit=dev

FROM base as final
COPY --from=build /app/dist /app/dist

CMD ["node", "dist/server.mjs"]
脚注
  1. テストディレクトリから拝借しました https://github.com/honojs/honox/tree/ef60e9ac30bd98548f9fbbefcda01edfd377e966/test/hono-jsx ↩︎

Discussion