Future Flags
フューチャーフラグ
以下のフューチャーフラグは安定しており、採用可能です。フューチャーフラグの詳細については、開発戦略を参照してください。
最新のv2.xにアップデート
最新のフューチャーフラグを取得するために、まずv2.xの最新マイナーバージョンにアップデートしてください。
👉 最新のv2にアップデート
Viteプラグイン
背景
Remixは独自のクローズドコンパイラ(現在は「クラシックコンパイラ」と呼ばれる)を使用せず、代わりにViteを使用します。Viteは強力で、パフォーマンスが高く、拡張可能なJavaScriptプロジェクト開発環境です。パフォーマンス、トラブルシューティングなどの詳細については、Viteのドキュメントを参照してください。
これはフューチャーフラグではありませんが、新機能と一部の機能フラグはViteプラグインでのみ利用可能で、クラシックコンパイラは次のメジャーバージョンのRemixで削除される予定です。
👉 Viteをインストール
コードの更新
👉 Remixアプリケーションのルートディレクトリでremix.config.js
をvite.config.ts
に置き換え
サポートされているRemix設定オプションのサブセットは、プラグインに直接渡す必要があります:
👉 <LiveReload/>
を削除し、<Scripts />
を保持
👉 tsconfig.json
の更新
tsconfig.json
のtypes
フィールドを更新し、skipLibCheck
、module
、moduleResolution
が正しく設定されていることを確認してください。
👉 remix.env.d.ts
の更新/削除
remix.env.d.ts
から以下の型宣言を削除してください:
remix.env.d.ts
が空になった場合は、削除してください:
パスエイリアスの設定
Viteはデフォルトでパスエイリアスを提供しません。この機能に依存している場合(例:~
をapp
ディレクトリのエイリアスとして定義)、vite-tsconfig-pathsプラグインをインストールして、Remixコンパイラの動作に合わせてViteでtsconfig.json
のパスエイリアスを自動的に解決できます:
👉 vite-tsconfig-paths
のインストール
👉 Vite設定にvite-tsconfig-paths
を追加
@remix-run/css-bundle
の削除
ViteにはCSS副作用インポート、PostCSS、CSSモジュール、その他のCSSバンドル機能のサポートが組み込まれています。RemixのViteプラグインは、バンドルされたCSSを関連するルートに自動的に追加します。
Viteを使用する場合、@remix-run/css-bundle
cssBundleHref
エクスポートは常にundefined
になるためです。
👉 @remix-run/css-bundle
のアンインストール
👉 cssBundleHref
への参照を削除
links
で参照されるCSSインポートの修正
links
関数でCSSを参照している場合、Viteの明示的な?url
インポート構文を使用するように対応するCSSインポートを更新する必要があります。
👉 links
で使用されるCSSインポートに?url
を追加
Tailwind CSSまたはVanilla Extractの移行
Tailwind CSSまたはVanilla Extractを使用している場合は、完全な移行ガイドを参照してください。
Remixアプリケーションサーバーからの移行
👉 dev
、build
、start
スクリプトの更新
Single Fetch
背景
Remixは、ネストされたルートローダーを並行して実行することで、優れたパフォーマンスを実現してきました。しかし、これにはいくつかの欠点があります:
- 各ローダーは独自のデータベースクエリを実行するため、N+1クエリの問題が発生する可能性があります
- ネストされたルートは、親ルートのデータにアクセスできません
- 各ルートは独自のエラー境界を持つため、エラー処理が複雑になります
Single Fetchフラグは、これらの問題を解決し、より優れたデータ読み込みパターンを提供します。
👉 フラグを有効化
フラグを有効にすると、基本的にコードをそのまま使用できますが、以下の変更は時間とともに行う必要があり、次のメジャーバージョンまでに必要になります。
👉 json()/defer()を生のオブジェクトに置き換え
Single Fetchは、JSONオブジェクトとPromiseをそのままサポートするため、loader
/action
関数から生のデータを返すことができます:
👉 親のデータへのアクセス
Single Fetchでは、親のデータに直接アクセスできます:
👉 エラー処理の改善
Single Fetchでは、エラーは最も近い親のエラー境界にバブルアップします:
将来のフラグ
将来のフラグは、Remixの将来のバージョンで導入される新機能を試すための方法です。これらのフラグは、次のメジャーバージョンでデフォルトで有効になり、その後のメジャーバージョンで削除されます。
フラグを有効にするには、vite.config.ts
のfuture
オプションに追加します: