LoginSignup
7
4

Remix SPAモード + Amplify Gen2を試してみる

Posted at

はじめに

記事の目的と概要

以前からNext.jsの対抗馬として気になっていたRemix。そろそろキャッチアップしないとなー、なんて思っていた矢先に出てきたReact Router統合のお話が話題になってましたね。

急ぎでないならRemixの技術選定はしばらく待ち、だと思いますが、同じく気になっていたAmplify Gen2との組み合わせを試してみたので、記事に残しておきたいと思います。

RemixはSSR向けのフレームワークだと思いますが、SPAモードもサポートしているようです。

Remixのメインの使い方ではないものの、新しく出たAmplify Gen2と一緒に試してみたかったので、今回は、Remix SPAモード + Amplify(Gen2)の組み合わせでホスティングしてみました。

では、早速試していきたいと思います。

Remixプロジェクトの作成

npx create-remix@latest --template remix-run/remix/templates/spa

上記を実行すると、以下のように対話的に聞いてくるので、すべてyesを選択します。

   remix   v2.9.2 💿 Let's build a better website...

   dir   Where should we create your new project?
         ./my-remix-app

      ◼  Template: Using remix-run/remix/templates/spa...
      ✔  Template copied

   git   Initialize a new git repository?
         Yes

  deps   Install dependencies with npm?
         Yes

      ✔  Dependencies installed

      ✔  Git initialized

  done   That's it!

プロジェクトの中身を見るとフォルダ構成はこんな感じ

image.png

起動してみる

以下コマンドを実行します

cd ./my-remix-app
npx remix vite:dev

うまく起動できると以下のように表示されます。

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help

ブラウザから
http://localhost:5173/
にアクセスするとRemixのSPAモードを示す画面が表示されます。実にシンプル。

image.png

ためしに、適当なページを作成してみます。

about.tsx
export default function About() {
  return (
    <div >
      <h1>Hello About Page</h1>
    </div>
  );
}

ファイルは以下のようにapp > routes配下に配置します。

image.png

http://localhost:5173/aboutにアクセスすると作成した画面が表示されます。
SPAでもファイルベースルーティングが動作している様子がわかります。
image.png

動作確認の結果が問題なければ、Gitにコミット&プッシュします。

Amplifyアプリ作成

AWSマネジメントコンソールにアクセスし、Amplifyコンソールを表示します。

[新しいアプリを作成]をクリックします。
image.png

Gitプロバイダーを選択します。私はGithubを使っているので[Github]を選択します。

image.png

接続したいgithubのリポジトリとブランチを選択します。
リポジトリの構成がモノレポの場合は、[私のアプリケーションはモノレポです]にチェックを付けます。

image.png

設定を自動検出してくれているようです。
出力ディレクトリをビルドの項目を「build/client/」に変更し、次に進みます。
image.png

内容を確認し、問題なければ[保存してデプロイ]をクリックします。
image.png

デプロイが完了するまでしばし待ちます。
完了するとこんな画面になるようです。
前のAmplify画面より洗練されているような気がします。(個人の意見です)
image.png

デプロイされたURLにアクセスすると、以下のようにローカルで確認した画面が表示されることを確認できました。
image.png

念の為aboutページにもアクセスしてみました。うまくデプロイされているようですね。
image.png

ちなみに、画面が切り替わってすぐにURLにアクセスすると以下のような画面が。。。
デプロイが反映するまでは少し(数分程度)時間差があるのかもしれません。焦らず気長に待ちましょう
image.png

おわりに

今回は、Remix SPAモードをAmplify Gen2上にホスティングする方法を試してみました。
Remixの強みであるファイルベースでのルーティングや、AmplifyのGitベースでのホスティングなど、どちらもさすがの手軽さでしたね。
今回の記事は、少々ニッチな使い方ですが、どなたかのお役に立てたら幸いです。

ということで、Remix SPAモード + Amplify Gen2を試してみる、でした。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4