ブログを作る場合

プロジェクトを整理し、維持しやすい構成にすることが重要です。

Next.js 13 と TypeScript を使用してブログサイトを作成する際のディレクトリ構成例を以下に示します。この構成では、機能ごとにディレクトリを分けています。

my-blog/
├─ .next/
├─ components/
│   ├─ Layout.tsx
│   ├─ Header.tsx
│   ├─ Footer.tsx
│   └─ BlogPost.tsx
├─ lib/
│   └─ api.ts
├─ pages/
│   ├─ index.tsx
│   ├─ blog/
│   │   ├─ [slug].tsx
│   │   └─ index.tsx
│   └─ api/
│       └─ blog.ts
├─ public/
│   ├─ images/
│   └─ favicon.ico
├─ styles/
│   ├─ globals.css
│   └─ theme.ts
├─ types/
│   └─ blog.d.ts
├─ .gitignore
├─ next.config.js
├─ package.json
├─ tsconfig.json
└─ README.md

ディレクトリの説明:

  • .next/: Next.js のビルド成果物が格納されるディレクトリ
  • components/: 再利用可能な React コンポーネントが格納されるディレクトリ
  • lib/: API やユーティリティ関数を格納するディレクトリ
  • pages/: 各ページのコンポーネントが格納されるディレクトリ
  • public/: 静的ファイル(画像やファビコンなど)が格納されるディレクトリ
  • styles/: CSS やテーマ設定が格納されるディレクトリ
  • types/: TypeScript の型定義ファイルが格納されるディレクトリ
  • .gitignore: Git で無視するファイルやディレクトリを指定するファイル
  • next.config.js: Next.js の設定ファイル
  • package.json: 依存関係やスクリプトが記述されたファイル
  • tsconfig.json: TypeScript の設定ファイル
  • README.md: プロジェクトの説明が記載されるファイル

このディレクトリ構成はあくまで一例です。プロジェクトの要件や開発チームの好みに合わせてカスタマイズすることができます。

ログイン機能を作る場合

以下はユーザーのログイン機能を作る場合の一例です。

my-project/
├── components/
│   ├── Comment/
│   │   ├── Comment.tsx
│   │   └── Comment.module.css
│   ├── Post/
│   │   ├── Post.tsx
│   │   └── Post.module.css
│   └── Layout/
│       ├── Layout.tsx
│       └── Layout.module.css
├── pages/
│   ├── api/
│   │   ├── posts.ts
│   │   └── comments.ts
│   ├── posts/
│   │   ├── [id].tsx
│   │   └── new.tsx
│   ├── profile/
│   │   ├── edit.tsx
│   │   └── [id].tsx
│   ├── dashboard/
│   ├── notifications/
│   ├── signin.tsx
│   ├── signup.tsx
│   └── index.tsx
├── public/
│   ├── images/
│   └── favicon.ico
├── styles/
│   └── global.css
├── prisma/
│   └── schema.prisma
├── .env.local
├── next.config.js
└── package.json

プロジェクトが完成したら、実際にインターネット上で公開する必要があります。Next.js アプリケーションは、多くのホスティングプロバイダーでデプロイできます。