クイックスタート
このガイドでは、できるだけ早くRemixアプリを実行するために必要な基本的な配管について説明します。さまざまなランタイム、デプロイターゲット、データベースを持つスターターテンプレートはたくさんありますが、ここではゼロからベアメタルのプロジェクトを作成します。
Remixプロジェクトを本格的に始める準備ができたら、コミュニティテンプレートから始めることを検討してください。テンプレートには、TypeScriptの設定、データベース、テストハーネス、認証などが含まれています。コミュニティテンプレートのリストは、Remix Resourcesページにあります。
インストール
バッテリー込みのRemixプロジェクトを初期化したい場合は、create-remix
CLIを使用できます。
ただし、このガイドでは、CLIがプロジェクトをセットアップするために実行するすべての操作を説明します。CLIを使用する代わりに、次の手順に従うことができます。Remixを初めて使用する場合は、このガイドに従って、Remixアプリを構成するさまざまなパーツを理解することをお勧めします。
Vite設定
RemixはViteを使用するため、Remix Viteプラグインを含むVite設定を提供する必要があります。必要な基本的な設定を次に示します。
ルートルート
app/root.jsx
は、私たちが「ルートルート」と呼ぶものです。これは、アプリ全体のルートレイアウトです。すべてのプロジェクトに必要な基本的な要素を次に示します。
ビルドと実行
最初に、アプリを本番環境用にビルドします。
これで、build
フォルダに、server
フォルダ(アプリのサーバーバージョン)とclient
フォルダ(ブラウザバージョン)が作成され、そこにビルドアーティファクトが含まれます。(これはすべて構成可能です。)
👉 remix-serve
でアプリを実行する
最初に、package.json
でタイプをmodule
に指定する必要があります。そうすることで、remix-serve
がアプリを実行できるようになります。
これで、remix-serve
でアプリを実行できます。
http://localhost:3000を開くと、「hello world」ページが表示されます。
node_modules
内の大量のコードを除けば、Remixアプリは単一のファイルのみです。
├── app/
│ └── root.jsx
└── package.json
└── vite.config.js
独自のサーバーを用意する
remix vite:build
によって作成されたbuild/server
ディレクトリは、単なるモジュールです。これは、Express、Cloudflare Workers、Netlify、Vercel、Fastly、AWS、Deno、Azure、Fastify、Firebaseなど、サーバー内で実行します。...どこでも。
独自のサーバーをセットアップしたくない場合は、remix-serve
を使用できます。これは、Remixチームが保守するシンプルなexpressベースのサーバーです。ただし、Remixは、どのJavaScript環境でも実行できるように設計されているため、スタックを所有できます。多くの場合、特に本番環境のアプリでは、独自のサーバーを持つことが期待されます。この点については、Runtimes、Adapters、and Stacksで詳しく説明しています。
ちょっとした実験として、remix-serve
の使用をやめて、代わりにexpressを使用してみましょう。
👉 Express、Remix Expressアダプター、および本番モードで実行するためのcross-envをインストールする
👉 Expressサーバーを作成する
👉 expressでアプリを実行する
これでサーバーを所有したため、サーバーが備えているツールを使用してアプリをデバッグできます。たとえば、Node.js inspectフラグを使用して、chrome devtoolsでアプリを検査できます。
開発ワークフロー
サーバーを停止、再ビルド、起動を繰り返すのではなく、Viteミドルウェアモードを使用してRemixを開発モードで実行できます。これにより、React Refresh(ホットモジュール置換)とRemix Hot Data Revalidationを使用して、アプリの変更に対する即時のフィードバックが可能になります。
まず、便宜上、package.json
にdev
とstart
コマンドを追加します。これらは、それぞれ開発モードと本番モードでサーバーを実行します。
👉 package.json
に「scripts」エントリを追加する
👉 サーバーにVite開発ミドルウェアを追加する
process.env.NODE_ENV
が"production"
に設定されている場合は、Viteミドルウェアは適用されません。この場合は、前述のように、通常のビルド出力を実行し続けます。
👉 開発サーバーを起動する
これで、アプリをすぐにフィードバックを得ながら操作できます。試してみてください。root.jsx
のテキストを変更して、変化を見てみましょう!
サーバーとブラウザのエントリを制御する
Remixでは、ほとんどのアプリでは触る必要のない、デフォルトのマジックファイルを使用しています。しかし、Remixのサーバーとブラウザへのエントリポイントをカスタマイズしたい場合は、remix reveal
を実行すると、これらのファイルがプロジェクトにダンプされます。
Entry file entry.client created at app/entry.client.tsx.
Entry file entry.server created at app/entry.server.tsx.
まとめ
おめでとうございます。Remixを履歴書に追加できます!要約すると、次のようなことを学びました。
- Remixはアプリを2つのものに変換します。
- 独自のJavaScriptサーバーに追加するリクエストハンドラー
- ブラウザ用のパブリックディレクトリにある静的資産の山
- アダプターを使用して独自のサーバーを用意して、どこでもデプロイできます。
- HMRが組み込まれた開発ワークフローをセットアップできます。
一般的に、Remixは少し「ガッツ」があります。少しのボイラープレートを記述するだけで、スタックを所有できます。
次は?