前回の記事で、JavascriptのReactでサンプルアプリを作成してみました
今回は、Reactで作ったプロジェクトの ディレクトリ構成と各ファイルの役割 を整理して説明します
1. ディレクトリ構成(CRAで作成直後)
my-counter/
├── node_modules/ # インストールしたnpmライブラリ(触らない)
├── public/ # 公開用の静的ファイル
│ ├── index.html # Reactアプリが埋め込まれるベースHTML
│ └── favicon.ico # アイコンや画像など
├── src/ # 実際に開発するコード(ここをいじる)
│ ├── App.js # メインのコンポーネント(最初に編集する)
│ ├── App.css # Appコンポーネント用のスタイル
│ ├── index.js # アプリのエントリーポイント(Appを読み込む)
│ ├── index.css # 全体のCSS
│ └── logo.svg # Reactロゴ画像
├── package.json # プロジェクトの依存関係やスクリプト
├── package-lock.json # 依存関係の正確なバージョン記録
└── README.md # プロジェクトの説明
2.各ファイルの役割
🔹 public/
- index.html
- Reactアプリを埋め込むベースのHTML
- 中に <div id=”root”></div> があり、ここにReactコンポーネントが差し込まれる
- ふつう中身を直接書き換えることはあまりない(タイトル変更ぐらい)
🔹 src/
ここが 開発のメインフィールド 🎯
- index.js
- ReactアプリのエントリーポイントApp コンポーネントを index.html の <div id=”root”> に描画している
- App.js
- メインのコンポーネント
- 最初に編集して動作確認するのはここ
- いま作ったカウンターアプリもこのファイルに書いてある
- App.css
- App.js に対応するCSSファイル
- コンポーネントごとにスタイルを分けられる
- index.css
- 全体に適用するスタイル(グローバルCSS)
- logo.svg
- Reactの回るサンプルのロゴ画像(最初の画面に出るやつ)
🔹 package.json
- プロジェクトの「設計図」みたいなもの
- 依存パッケージ(Reactや開発ツール)のバージョンが書いてある
- スクリプトも定義されている
- { “scripts”: { “start”: “react-scripts start”, “build”: “react-scripts build”, “test”: “react-scripts test”, “eject”: “react-scripts eject” } }
以下のコマンドでwebアプリを生成できます
- npm start → 開発サーバー起動するコマンド
- npm run build → 本番用に最適化した静的ファイルを生成するコマンド
重要な部分
- public/index.html … ベースのHTML(rootにReactが差し込まれる)
- src/index.js … Reactアプリのスタート地点
- src/App.js … 最初に編集するメインコンポーネント
- package.json … 依存関係・スクリプト管理
実際に編集するのは基本的に src/ の中です。
3.開発の流れ
- src/App.js や src/ フォルダ内にコードを書いて開発する
(App.jsだけじゃなく、コンポーネントを増やして src/components/ を作ったりするのが普通) - 開発中は npm start を使う
→ 自動でホットリロードされて、ブラウザに即反映される
→ 本番用ではなく、開発サーバーで動いている状態 - 本番公開したいときは npm run build を実行して静的ファイルを生成する
4.npm run build で起こること
- react-scripts build が動いて、最適化済みの静的ファイルを生成する
- 出力先はプロジェクト直下の build/ ディレクトリ
my-counter/
├── build/ # ← ここが生成される(本番公開用)
│ ├── index.html # Reactアプリが埋め込まれたHTML
│ ├── static/ # 圧縮・最適化されたJSやCSS
│ │ ├── js/
│ │ │ ├── main.[hash].js # あなたのReactコードがまとめられたJS
│ │ └── css/
│ │ └── main.[hash].css # CSSがまとめられたもの
│ └── favicon.ico
├── public/
├── src/
└── ...
🔹 ポイント
- src/ のコードは全部まとめられて 1つのJavaScript(main.[hash].js) に変換される
- CSSもまとめられて main.[hash].css になる
- build/index.html には、これらのファイルが <script> や <link> として読み込まれるように書き換えられている
- hash はキャッシュ対策のためのランダム文字列
公開するなら
- VPS や GitHub Pages、Netlify、Vercel などに build/ フォルダをアップロードすればOK
- これで「Reactを動かすためのサーバー」は不要で、ただの静的ファイルとして動く
5.WEBアプリ生成のまとめ
- 開発 → npm start
- 本番用ビルド → npm run build
- 出力 → build/ ディレクトリに index.html と最適化されたJS/CSS
今回は各ファイルの役割とwebアプリの生成までの流れを解説しました
次回以降でもっと実践的なwebアプリを作成する流れを解説したいと思います
コメント