😀

Remixアプリケーションの環境構築

2025/02/09に公開

はじめに

この記事では、WebアプリケーションのフレームワークであるRemixを試すために基本的な部分の初期構築を行ったため、その際の備忘録となります。

今回のコード

今回紹介する内容については、以下のGithubリポジトリで公開しています。
https://github.com/sin-sin-shinji/remix-sample

1. 環境構築

まず初めにRemixアプリケーションの環境構築を行いました。主に、以下のPRでまとめています。

https://github.com/sin-sin-shinji/remix-sample/pull/1

Remixのアプリケーションの初期構築については、公式ドキュメントを参考に実行しました。
https://remix.run/docs/en/main/start/quickstart

基本的に公式ドキュメントで問題ありませんでしたが、1点考慮すべき点として、現時点(2025/01時点)のremixの最新バージョンが、React.jsのv19に対応していなかったため、React.jsはv18をインストールしています。

2. 開発環境のDocker化

次に「開発環境のDocker化」です。以下のPRでまとめています。

https://github.com/sin-sin-shinji/remix-sample/pull/2

3. ESLint, prettierの導入

次にLinterである「ESLint, prettierの導入」です。以下のPRでまとめています。

https://github.com/sin-sin-shinji/remix-sample/pull/3

ESLintは、v9から設定手順が「FlatConifg」という形式に大きく変わりましたので、この形式での設定を採用しております。次に、設定手順については、公式ドキュメントに従いました。
https://eslint.org/docs/latest/use/getting-started

具体的には、以下のスクリプトを実行することで、初期設定を一括で行なっております。

npm init @eslint/config@latest

次に、ESLintのプラグインについては、TypeScript, React.js, prettier, アクセシビリティ等の基本的なプラグインを追加しています。

  • typescript-eslint
  • eslint-plugin-react
  • eslint-plugin-react-hooks
  • eslint-plugin-jsx-a11y
  • eslint-plugin-import
  • eslint-config-prettier

また、ESLintに合わせて、フォーマッターであるprettierについても導入しています。

4. 「tailwind」の導入

次に、CSSフレームワークとして「tailwind」を導入しました。こちらは以下のPRでまとめられています。

https://github.com/sin-sin-shinji/remix-sample/pull/4

tailwindについて、現時点(2025/01時点)で最新バージョンはv4ですが、このバージョンの導入を試みるもエラーとなってしまいました。更に解決方法が分からなかったため、仕方なくv3系のインストールを行いました。その際の導入手順は、公式ドキュメントを参考にしています。
https://v3.tailwindcss.com/docs/installation/using-postcss

5. 「shadcn/ui」の導入

次に、UIフレームワークとして「shadcn/ui」を導入しました。先述の「tailwind」を導入したのも、依存関係のあるこの「shadcn/ui」を試したかったことが理由になります。こちらについては、以下のPRでまとめています。

https://github.com/sin-sin-shinji/remix-sample/pull/5

最後に

今回は、Webアプリケーションフレームワークである「Remix」で開発をするにあたっての基本的な項目の構築手順について、記事にまとめました。

また、他にも以下の記事でRemixアプリケーションの機能開発についてまとめていますので、ご興味のある方は合わせてご確認ください。

https://zenn.dev/sin_sin_shinji/articles/b424eb95b9b587

https://zenn.dev/sin_sin_shinji/articles/67320d911e4b78

Discussion