前回までの記事 アプリ開発を楽しむ【#1:アプリの概要】

今回は環境構築を行っていきます。 環境構築が一番煩わしい作業ですよね? では、早速始めていきます。

開発環境はDockerを使って構築していきます。 Dockerがインストールされていなければインストールしてください。 https://www.docker.com

1.構築準備

ディレクトリ構成

togo_app
    │    
    ├── frontend
    |     |
    |     ├── app
    |     |
    │     └── Dockerfile
    |
    └── docker-compose.yml

ターミナル上で次のコマンドを入力すると上記のディレクトリ構成となります。
mkdir togo_app
cd togo_app
mkdir -p frontend/app
touch frontend/Dockerfile
touch docker-compose.yml

ここからは、エディタを使って作業していきます。 togo_appをVsCodeで開きます。

①Dockerfileを作成する

frontend/Dockerfileを次の内容で作成

FROM node:16.16.0

WORKDIR /togo_app

EXPOSE 3000

②docker-compose.ymlを作成する

docker-compose.ymlを次の内容で作成

version: '3.8'

services:
  frontend:
    container_name: frontend
    build: ./frontend
    volumes:
      - ./frontend/app:/togo_app
    ports:
      - "3000:3000"
    tty: true

③Dockerイメージの作成とコンテナの起動

次のコマンドでdockerイメージが作られ、コンテナが起動します。

docker compose up -d --build

④コンテナが起動しているかを確認する

docker compose ps

NAME                COMMAND                  SERVICE             STATUS              PORTS
frontend            "docker-entrypoint.s…"   frontend            running             0.0.0.0:3000->3000/tcp

NAMEがfrontend STATUSがrunningになっていれば正常にコンテナが起動しています。

2.React+TypeScriptをインストール

先程起動したコンテナの中に入ります。

docker compose exec frontend bash

以下のようにコンテナ内に入ることができます。
root@b585f79b9ddf:/togo_app#

①viteを使ってReact+TypeScript環境を構築する(コンテナ内で実行)

いつもはcreat-react-appを使っているのですが、今回はvite(ヴィートと読むみたいです)というのを使ってReactをインストールしていきます。 viteを使うとすぐにReact+TypeScriptの環境が構築できるようです。

npm create vite .

Ok to proceed? (y) → キーボードのyを押してenter

? Project name: → togo_app(任意のプロジェクト名を入力。ここでは、togo_appとしています)
? Select a framework: → reactを選択
? Select a variant: → react-tsを選択(TypeScriptを使うかどうかを選択)

次のようなファイル群がappディレクトリ以下にできます。 スクリーンショット 2022-08-13 16.56.37.png

②React+TypeScriptをインストールする(コンテナ内で実行)

npm installを実行して、Reactなどをインストールします。

npm install

③サーバーを起動する(コンテナ内で実行)

npm run devでサーバーは起動できるのですが、コンテナの外からコンテナの中にアクセスできないので、frontend/app/vite.config.tsを次のように修正します。 frontend/app/vite.config.tsを修正

export default defineConfig({
  plugins: [react()],
    // 追加
  server: {
    host: true,
    port: 3000,
  }
})

サーバーを起動する。

npm run dev

http://localhost:3000 にアクセスして、下の画面が表示されたらOK スクリーンショット 2022-08-12 0.13.13.png

3.その他のライブラリーをインストール

コンテナ内ですべて実行していきます。

React用のUIフレームワーク

npm install @mui/material @emotion/react @emotion/styled
npm install @mui/icons-material
npm install @types/material-ui
  • React Routerのインストール

ページ遷移があるReactアプリを構築するときに利用するライブラリー

npm install react-router-dom @types/react-router-dom
  • Redux Tool Kitのインストール

状態管理用のライブラリー

npm install @reduxjs/toolkit
  • Google Map

今回Google Mapを表示させるのに使用します。

npm install @react-google-maps/api
npm install @types/googlemaps --save-dev

今回はここまでにしておきます。 次回も引き続き環境構築していきます。(ESLintやPrettierなど)

コードはGitHubに置いてありますのでよければ参考にしてください。 mainブランチは常に最新のものになります。 今回の内容はblog_2のブランチを参照してください。 https://github.com/KINE-M/togo_app