Next.js:開発環境構築
環境構築の際に色々インストールするのですが、それぞれ何のために使うのか把握したいと思います。
参考書:typeScriptとReact/Next.jsで作る実践Webアプリケーション開発
(1) Next.jsのプロジェクト作成
npx create-next-app@latest --ts
(2) styled-componentsの設定:CSSスタイルの統一
npm install styled-components
npm install --save-dev @types/styled-components
CSS in JSライブラリは他にもあるそうですが、以下のような観点から検討するといいそうです。
- 書きやすさ
- 開発の活発さ
- 捨てやすさ(別ライブラリや自前実装などへの移行のしやすさ)
(3) ES LintとPretterの設定:コードの初歩的なミス防止
npm install --save-dev pretter eslint typescript-eslint \
@typescript-eslint/eslint-plugin \
@typescript-eslint/parser \
eslint-config-pretter \
eslint-plugin-pretter \
eslint-plugin-react \
eslint-plugin-react-hooks \
eslint-plugin-import
ES Lint:コードエラー解析ツール
Pretter:コードの標準化
コード保存時に決められたルールで整えます。余計なコード差分を生まないための手段です。
(4) storybook:ブラウザでコンポーネント確認
npx sb init
(5) React Hook Form:フォームバリデーションライブラリ
npm install react-hook-form
「商品を出品」のページで使うそうです。
(6) SWR:キャッシュ関連
npm install swr
SWRとはデータ取得のためのReact Hooksライブラリ、とのこと。
CSR(常に最新データを表示するため非同期を使う方法)を効率的に実現するために使用するそうです。
Stale-While-Revalidate(SWR)とは
Cache-Control
の拡張- キャッシュから表示する
- が、裏で非同期にキャッシュを更新しておく
キャッシュは使いたい、が、なるべく鮮度の高いリソースを返したい、というニーズに応える仕組み。
Stale-While-Revalidateに関するメモ – Zenn
Stale(古くなったもの)-While(〜の間)-Revalidate(再検証)ということなので、「再検証している間は古いキャッシュを返す」って認識でいい気がする。
詳しくはこちら。Cache-Control – HTTP – MDN Web Docs – Mozilla
(6) React Control Loader:ローダー作成ツール
npm install react-content-loader
npm install --save-dev @type/react-content-loader
(7) Material Icons:アイコン表示
npm install @mui/material @mui/icons-material @emotion/react @emotion/styled
(8) 環境変数.envファイル
プロジェクトのルートに.envファイルを作成します。
API_BASE_URL=http://localhost:8000
NEXT_PUBLIC_API_BASE_PATH=/api/proxy
- API_BASE_URL:Json ServerのURL
- NEXT_PUBLIC_API_BASE_PATH:Next.jsのURL Rewrite機能(後に登場)で使う変数
(9) テスト環境
npm install --save-dev \
@testing-library/jest-dom \
@testing-library/react \
jest \
jest-environment-jsdom
(10) JSON Server:仮のAPI
あらかじめ用意したコード(!?)をGitHubリポジトリからクローンします。
# Next.jsのアプリケーションとは別のディレクトリで作業する
git clone https://github.com/~