Remix アプリサーバー
Remix は、サーバーを所有することを想定して設計されていますが、サーバーをセットアップしたくない場合は、代わりに Remix アプリサーバーを使用できます。これは、Express で構築された、本番環境対応の、しかし基本的な Node.js サーバーです。カスタマイズしたい場合は、代わりに @remix-run/express
アダプターを使用してください。
HOST
環境変数
process.env.HOST
を介して Express アプリのホスト名を構成できます。その値は、サーバーを起動するときに、内部の app.listen
メソッドに渡されます。
PORT
環境変数
環境変数を使用してサーバーのポートを変更できます。
開発環境
process.env.NODE_ENV
によって、サーバーは開発モードまたは本番モードで起動します。
server-build-path
は、remix.config.js
で定義されている serverBuildPath
を指す必要があります。
ビルドアーティファクト (build/
, public/build/
) だけを本番環境にデプロイする必要があるため、remix.config.js
は本番環境では利用できない可能性があります。そのため、このオプションでサーバービルドの場所を Remix に知らせる必要があります。
開発では、remix-serve
は、各リクエストに対して require
キャッシュをパージすることで、最新のコードが実行されるようにします。これは、コードに影響を与える可能性があるため、注意が必要です。
-
モジュールスコープの値は「リセット」されます。
開発中のキャッシュを維持するための回避策として、サーバーに シングルトン を設定できます。
-
モジュールの副作用 はすべてそのまま残ります!これは問題になる可能性がありますが、そもそも回避するべきでしょう。
このようなモジュールの副作用を含む方法でコードを記述する必要がある場合は、独自の @remix-run/express サーバーと、pm2-dev や nodemon などの開発用ツールを設定して、ファイルの変更時にサーバーを再起動する必要があります。
本番環境では、これは発生しません。サーバーは起動し、それでおしまいです。