vite.config.ts
RemixはアプリケーションをコンパイルするためにViteを使用します。Remix Viteプラグインを含むVite設定ファイルを提供する必要があります。以下は、必要な最小限の設定です。
import { vitePlugin as remix } from "@remix-run/dev";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [remix()],
});.jsファイルを使用することをサポートしていますが、設定が有効であることを確認するためにTypeScriptを使用することをお勧めします。
Remix Viteプラグインの設定
import { vitePlugin as remix } from "@remix-run/dev";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [
remix({
basename: "/",
buildDirectory: "build",
future: {
/* 有効にする将来のフラグ */
},
ignoredRouteFiles: ["**/*.css"],
routes(defineRoutes) {
return defineRoutes((route) => {
route("/somewhere/cool/*", "catchall.tsx");
});
},
serverBuildFile: "index.js",
}),
],
});appDirectory
プロジェクトルートからの相対パスで、appディレクトリへのパスです。デフォルトは"app"です。
future
future設定では、将来のフラグを介して将来の破壊的な変更をオプトインできます。
ignoredRouteFiles
これは、Remixがapp/routesディレクトリを読み込む際にファイルと照合するグロブ(minimatch経由)の配列です。ファイルが一致した場合、ルートモジュールとして扱われるのではなく、無視されます。これは、同じ場所に配置したいCSS/テストファイルを無視するのに役立ちます。
routes
app/routesのファイルシステム規約を使用してすでに定義されているルートに加えて、カスタムルートを定義するための関数です。両方のルートセットがマージされます。
import { vitePlugin as remix } from "@remix-run/dev";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [
remix({
routes: async (defineRoutes) => {
// 非同期処理が必要な場合は、`defineRoutes`を呼び出す前に実行してください。
// ネストを設定するために内部で`route`のコールスタックを使用します。
return defineRoutes((route) => {
// これの一般的な用途はキャッチオールルートです。
// - 最初の引数は、照合するReact Routerパスです
// - 2番目は、ルートハンドラーの相対ファイル名です
route("/some/path/*", "catchall.tsx");
// ルートをネストしたい場合は、オプションのコールバック引数を使用します
route("some/:path", "some/route/file.js", () => {
// - パスは親パスからの相対パスです
// - ファイル名は依然としてappディレクトリからの相対パスです
route("relative/path", "some/other/file");
});
});
},
}),
],
});serverModuleFormat
サーバービルドの出力形式で、"cjs"または"esm"のいずれかになります。デフォルトは"esm"です。
buildDirectory
プロジェクトルートからの相対パスで、ビルドディレクトリへのパスです。デフォルトは"build"です。
basename
ルートパスのオプションのベース名で、React Routerの"basename"オプションに渡されます。これは、_アセット_パスとは異なることに注意してください。アセットのベースパブリックパスは、Viteの"base"オプションを介して設定できます。
buildEnd
Remixのフルビルドが完了した後に呼び出される関数です。
manifest
.remix/manifest.jsonファイルをビルドディレクトリに書き込むかどうか。デフォルトはfalseです。
presets
他のツールやホスティングプロバイダーとの統合を容易にするための[プリセット]の配列です。
serverBuildFile
サーバービルドディレクトリに生成されるサーバーファイルの名前です。デフォルトは"index.js"です。
serverBundles
サーバーバンドルにアドレス可能なルートを割り当てるための関数です。
また、サーバーバンドルが有効になっている場合、ルートとサーバーバンドル間のマッピングが含まれるため、manifestオプションを有効にすることもできます。