デプロイこのページを編集.md

Deno

スタンドアロンの Deno サーバとしてデプロイするには、ビルトインの deno アダプタを使用します。このアダプタは Deno のネイティブ Deno.serve() API を使用し、エッジ互換の fetch ハンドラとビルド時静的ルートマッピングを提供します。

システムに Deno がインストールされている必要があります:

curl -fsSL https://deno.land/install.sh | sh

追加のパッケージは不要です — アダプタは @lazarv/react-server に組み込まれています。

Deno でプロダクションビルドを実行すると、deno アダプタが自動的に検出・使用されます — 設定は不要です。明示的に指定したい場合やオプションを渡したい場合は、react-server.config.mjs ファイルにアダプタを追加します:

export default { adapter: "deno", };

オプションを渡してアダプタをカスタマイズできます:

export default { adapter: [ "deno", { name: "my-app", // アプリケーション名(生成される deno.json で使用) }, ], };

設定オプション

環境変数

生成されたサーバは実行時に以下の環境変数をサポートします:

Deno アダプタはエッジビルドモードを使用し、サーバ全体を単一のファイルにバンドルします。ビルド時に以下を行います:

  1. サーバコードを .deno/server/.react-server/server/edge.mjs にバンドル
  2. すべての静的アセットを .deno/static/ にコピー
  3. ビルド時静的ルートマップを含む start.mjs スクリプトを生成し、Deno.readFile() で適切な MIME タイプ検出付きの静的ファイル配信を実現
  4. 簡単なデプロイのためのスタートタスク付き deno.json を作成

静的ファイル(HTML、CSS、JS、画像など)はビルド時ルートマップから解決され、サーバハンドラを経由せず直接配信されます。

react-server CLI を使用してアプリケーションをビルドします:

pnpm react-server build [root]

これにより、以下の構造の .deno/ ディレクトリが生成されます:

.deno/ ├── start.mjs # 静的ルートマップ付きエントリーポイント ├── deno.json # スタートタスク付き Deno 設定 ├── static/ # すべての静的アセット │ ├── assets/ # ハッシュ付きビルドアセット(CSS、JS) │ ├── client/ # クライアントサイドバンドル │ └── ... # 公開ファイル、プリレンダリング HTML └── server/ └── .react-server/ └── server/ └── edge.mjs # バンドルされたサーバ

本番サーバを直接起動します:

deno run --allow-net --allow-read --allow-env --allow-sys .deno/start.mjs

または --deploy フラグを使用してビルドと即時起動を行います:

pnpm react-server build [root] --deploy

生成された deno.json のタスクを使用することもできます:

cd .deno deno task start

Deno アダプタは自己完結型のサーバを生成するため、Deno が動作する場所ならどこでもデプロイできます:

Dockerfile の例

FROM denoland/deno:latest WORKDIR /app COPY .deno/ . EXPOSE 3000 CMD ["deno", "task", "start"]