はじめに
JavaScriptフレームワークの中でも人気の高いReact。「まず動くプロトタイプを作りたいけど、BabelやWebpackの設定が面倒」という悩みを解決するのが**Create React App(CRA)**です。コマンド1本で最新の開発環境が完成し、すぐにブラウザで実行できます。本記事では公式ドキュメントを基に、基本操作から応用設定・テスト・デプロイまでをステップごとに解説します。
Create React Appの概要
なぜCRAが選ばれるのか
- 設定ファイルが不要
Webpack・Babelなど複雑な設定を気にせず、すぐに開発を始められます。 - モダンブラウザ対応
主要ブラウザを標準サポート。古いブラウザもポリフィルで後付けできます。 - 学習コストが低い
React初心者でもnpm startでホットリロード環境が起動し、変更が即反映されます。
プロジェクトの作成コマンド
npx create-react-app my-app
cd my-app
npm start # localhost:3000 が自動で開く以前グローバルに create-react-app を入れていた場合はアンインストールしてから実行してください。
フォルダ構成を理解する
| パス | 役割 |
|---|---|
public/index.html | ただ一つのHTMLテンプレート |
src/index.js | エントリーポイント |
src/App.js | ルートコンポーネント |
src 配下 | JS/TS・CSS・画像など。ここに置くとWebpackが自動でバンドル |
public 内のファイルだけが index.html から直接参照できます。コンポーネントから画像を読み込むときは import するのが基本です。
よく使うスクリプト
npm start # 開発用サーバー (ホットリロード付き)
npm run build # 本番ビルド (圧縮・ハッシュ付きファイルを生成)
npm test # テスト実行 (Jest + Testing Library)
npm run eject # 設定ファイルを外へ出す※後戻り不可build で生成されるファイルは build フォルダに出力され、そのまま静的ホスティングへアップロードできます。
ブラウザサポートとポリフィル
- モダンブラウザ(Chrome, Edge, Safari, Firefox)はそのまま対応
- IE11 など古いブラウザ
react-app-polyfillを追加してindex.jsの先頭で読み込めば対応可能
npm i react-app-polyfillimport 'react-app-polyfill/ie11';テスト環境:Jest + Testing Library
CRA には Jest が組み込まれており、npm test ですぐテストを実行できます。
// src/App.test.js
import { render, screen } from '@testing-library/react';
import App from './App';
test('タイトルが表示される', () => {
render(<App />);
const heading = screen.getByText(/Hello React/i);
expect(heading).toBeInTheDocument();
});*.test.js や *.spec.js というファイル名で自動検出され、ウォッチモードで変更分だけ再テストされます。
環境変数とビルド時の設定
- ルートに
.envファイルを作成 - 必ず
REACT_APP_を頭につけて記載
REACT_APP_API_URL=https://api.example.com
REACT_APP_VERSION=1.0.0- アプリ内で参照
const api = process.env.REACT_APP_API_URL;カスタムテンプレートで拡張
npx create-react-app my-app --template typescript
npx create-react-app my-app --template reduxcra-template-◯◯ 形式で公開されたテンプレートを利用することで、TypeScript、Redux、Styled-Components など好みの初期構成を選べます。
「もっと細かく設定したい」と思ったら
1. npm run eject
設定をすべてプロジェクトに書き出し、Webpack/Babel を自由に編集。取り消しできないため、チームで合意してから行いましょう。
2. 公式が用意した環境変数
INLINE_RUNTIME_CHUNK=false など、ビルド挙動を変える環境変数が用意されています。軽微な調整なら eject せずに対応できます。
デプロイ手順
- ビルド
npm run build- ホスティング
- GitHub Pages
- Netlify / Vercel
- Firebase Hosting
- SPAルーティング
ルート以外の URL でもindex.htmlを返す設定が必要。ホスティングごとのリライトルールを追加しましょう。
Q&A:よくある疑問
| 疑問 | 回答 |
|---|---|
| 後から TypeScript に変えたい | npm i --save typescript @types/node @types/react @types/react-dom を追加し、ファイル拡張子を .tsx に変更 |
| モジュールエイリアスを使いたい | ルートに jsconfig.json を追加し baseUrl と paths を設定 |
| React 18 は使える? | 最新の CRA は React 18 対応。npm i react@18 react-dom@18 でアップグレード可能 |
まとめ
Create React App は「React をすぐ始めたい」「設定で迷いたくない」という開発者の強い味方です。
- インストールは1行:
npx create-react-app my-app - 開発は
npm start、本番はnpm run build - カスタムテンプレートや環境変数で柔軟に拡張
- 大規模開発や特殊ビルドが必要になったら
npm run ejectや Vite への移行を検討
まずはサンプルアプリを作り、コンポーネントを編集しながら動作を確かめてみましょう。React の学習がスムーズに進むはずです。




コメント