Open3

Cloudflare Workers に frontend frameworks が deploy できるってどういうこと?

ピン留めされたアイテム
naporitannaporitan

vite の plugin で何かを頑張って変換しているわけではなく、Cloudflare Pages で Remix を deploy する構成を引き続き使いつつ、それを Cloudflare Workers 向けに build しなおしているっぽい。

個人的には Cloudflare Workers に乗っかるということで Cloudflare Cron Trigger や Cloudflare Queue が定義できるようになって monorepo 構成から脱却できると思ったがまだ難しそう。

wrangler pages function build に関する build script はここにあるので時間があるときに詳しく見て行こうと思う。

https://github.com/cloudflare/workers-sdk/blob/main/packages/wrangler/src/pages/functions/buildWorker.ts#L38

naporitannaporitan

一番わかりやすそうな Remix から見ていく。

https://developers.cloudflare.com/workers/frameworks/framework-guides/remix/

build コマンドには remix vite:build && wrangler pages functions build --outdir build/worker が刺さっていた。

vite.config.ts は以下。ぱっと見 vite の plugin で何かを頑張っているわけではなさそうなので、build コマンドに刺さっている wrangler pages functions build --outdir build/worker がキモっぽい。

import {
  vitePlugin as remix,
  cloudflareDevProxyVitePlugin as remixCloudflareDevProxy,
} from "@remix-run/dev";
import { defineConfig } from "vite";
import tsconfigPaths from "vite-tsconfig-paths";

export default defineConfig({
  plugins: [
    remixCloudflareDevProxy(),
    remix({
      future: {
        v3_fetcherPersist: true,
        v3_relativeSplatPath: true,
        v3_throwAbortReason: true,
      },
    }),
    tsconfigPaths(),
  ],
});