クイックスタート(5分)
このガイドでは、Remixアプリケーションを実行するために必要な基本的なプロセスをできるだけ早く理解できるようにお手伝いします。様々なランタイム、デプロイメントターゲット、データベースを持つスターターテンプレートが多数ありますが、ここでは基本的なプロジェクトを最初から作成していきます。
Remixプロジェクトを本格的に始める準備ができたら、コミュニティテンプレートから始めることを検討してください。これらには、TypeScriptのセットアップ、データベース、テストツール、認証などが含まれています。コミュニティテンプレートのリストはRemixリソースページで見つけることができます。
インストール
バッテリー内蔵のRemixプロジェクトを初期化したい場合は、create-remix
CLIを使用できます:
ただし、このガイドではCLIがプロジェクトをセットアップするために行うすべての作業を説明し、CLIを使用する代わりに以下の手順に従うことができます。Remixを始めたばかりの場合は、Remixアプリケーションを構成するすべての異なる部分を理解するために、このガイドに従うことをお勧めします。
Vite設定
RemixはViteを使用するため、Remix Viteプラグイン用のVite設定を提供する必要があります。以下は必要な基本設定です:
ルートルート
app/root.jsx
は私たちがルートルート
と呼ぶものです。これはアプリケーション全体のルートレイアウトです。以下は任意のプロジェクトに必要な基本的な要素のセットです:
ビルドと実行
まず、プロダクションアプリケーションをビルドします:
これでbuild
フォルダが表示されるはずです。このフォルダには、server
フォルダ(アプリケーションのサーバーバージョン)とclient
フォルダ(ブラウザバージョン)が含まれており、いくつかのビルドアーティファクトが含まれています。(これらはすべて設定可能です。)
👉 remix-serve
を使用してアプリケーションを実行する
まず、remix-serve
がアプリケーションを実行できるように、package.json
でタイプをモジュールとして指定する必要があります。
これで、remix-serve
を使用してアプリケーションを実行できます:
http://localhost:3000を開いてhello world
ページが表示されるはずです。
node_modules
内の大量のコードを除いて、私たちのRemixアプリケーションはたった1つのファイルです:
独自のサーバー
remix vite:build
によって作成されたbuild/server
ディレクトリは単なるモジュールで、Express、Cloudflare Workers、Netlify、Vercel、Fastly、AWS、Deno、Azure、Fastify、Firebaseなどのサーバーで実行できます。
独自のサーバーをセットアップしたくない場合は、remix-serve
を使用できます。これはRemixチームによって維持されているexpressベースのシンプルなサーバーです。ただし、Remixは独自のスタックを持てるように、任意のJavaScript環境で実行できるように特別に設計されています。多くの(ほとんどの)本番アプリケーションは独自のサーバーを持つことが予想されます。詳細についてはランタイム、アダプター、スタックをご覧ください。
試しに、remix-serve
の使用を停止して、expressに切り替えてみましょう。
👉 Express、Remix Expressアダプター、および本番モードで実行するためのcross-envをインストール
👉 Expressサーバーを作成
👉 expressを使用してアプリケーションを実行
これで独自のサーバーを持つことができ、サーバーが持つ任意のツールを使用してアプリケーションをデバッグできます。たとえば、chrome devtoolsのNode.js検査フラグを使用してアプリケーションを検査できます:
開発ワークフロー
サーバーを常に停止、再ビルド、再起動する必要はありません。代わりに、Viteミドルウェアモードを使用して開発中にRemixを実行できます。これにより、React Refresh(ホットモジュール置換)とRemixホットデータ再検証を使用して、アプリケーションの変更にすぐにフィードバックを得ることができます。
まず、便宜上、package.json
にdev
とstart
コマンドを追加します。これらはそれぞれ開発モードと本番モードでサーバーを実行します:
👉 package.json
にscripts
を追加
👉 Vite開発中間ウェアをサーバーに追加
process.env.NODE_ENV
が"production"
に設定されている場合、Vite中間ウェアは適用されず、代わりに通常のビルド出力を実行します。
👉 開発サーバーを起動
これで、アプリケーションをすぐに使用し、変更にすぐにフィードバックを得ることができます。試してみて、root.jsx
内のテキストを変更してみてください!
サーバーとブラウザーのエントリーポイントを制御する
Remixはデフォルトのマジックファイルを使用しますが、大多数のアプリケーションはこれらのファイルを処理する必要はありません。ただし、Remixのサーバーとブラウザーのエントリーポイントをカスタマイズしたい場合は、remix reveal
を実行してこれらのファイルをプロジェクトにダンプできます。
まとめ
おめでとう!Remixを自分の履歴に追加できます!まとめると、以下のことがわかりました:
- Remixはアプリケーションを2つの部分にコンパイルします:
- 自分のJavaScriptサーバーに追加するリクエストハンドラー
- ブラウザーのパブリックディレクトリ内の静的アセットのバンドル
- 自分のサーバーとアダプターを持ち、どこでもデプロイできます
- 内蔵HMRを持つ開発ワークフローを設定できます
一般に、Remixは「大胆」です。わずかな時間のボイラープレートコードですが、自分のスタックを持つことができます。
次のステップは何ですか?