新しいNext.jsプロジェクトのセットアップ方法
システム要件
開始する前に、システムが以下の要件を満たしていることを確認してください:
- Node.js 18.18 以降
- macOS、Windows(WSLを含む)、またはLinux
自動インストール
新しいNext.jsアプリを作成する最も簡単な方法は、create-next-app
を使用することです。これにより、すべてが自動的にセットアップされます。プロジェクトを作成するには、以下を実行します:
npx create-next-app@latest
インストール中に以下のプロンプトが表示されます:
プロジェクト名を入力してください? my-app
TypeScriptを使用しますか? No / Yes
ESLintを使用しますか? No / Yes
Tailwind CSSを使用しますか? No / Yes
コードを`src/`ディレクトリ内に配置しますか? No / Yes
App Routerを使用しますか? (推奨) No / Yes
`next dev`にTurbopackを使用しますか? No / Yes
インポートエイリアスをカスタマイズしますか? (`@/*`がデフォルト) No / Yes
どのインポートエイリアスを設定しますか? @/*
プロンプトの後、create-next-app
はプロジェクト名のフォルダを作成し、必要な依存関係をインストールします。
手動インストール
新しいNext.jsアプリを手動で作成するには、必要なパッケージをインストールします:
npm install next@latest react@latest react-dom@latest
次に、以下のスクリプトをpackage.json
ファイルに追加します:
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
}
}
これらのスクリプトは、アプリケーション開発のさまざまな段階を参照しています:
next dev
: 開発サーバーを起動しますnext build
: 本番用にアプリケーションをビルドしますnext start
: 本番サーバーを起動しますnext lint
: ESLintを実行します
app
ディレクトリの作成
Next.jsはファイルシステムベースのルーティングを使用しており、アプリケーション内のルートはファイルの構造によって決定されます。
app
フォルダを作成します。次に、app
内にlayout.tsx
ファイルを作成します。このファイルはルートレイアウトです。必須であり、<html>
タグと<body>
タグを含める必要があります。
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
初期コンテンツを含むホームページapp/page.tsx
を作成します:
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
export default function Page() {
return <h1>Hello, Next.js!</h1>
}
layout.tsx
とpage.tsx
は、ユーザーがアプリケーションのルート(/
)にアクセスしたときにレンダリングされます。

知っておくと便利:
- ルートレイアウトの作成を忘れた場合、
next dev
で開発サーバーを実行するとNext.jsが自動的にこのファイルを作成します- オプションで、プロジェクトのルートに
src
フォルダを使用して、アプリケーションコードを設定ファイルから分離できます
public
フォルダの作成(オプション)
プロジェクトのルートにpublic
フォルダを作成して、画像、フォントなどの静的アセットを保存します。public
内のファイルは、ベースURL(/
)から始まるパスでコードから参照できます。
これらのアセットはルートパス(/
)を使用して参照できます。例えば、public/profile.png
は/profile.png
として参照できます:
import Image from 'next/image'
export default function Page() {
return <Image src="/profile.png" alt="Profile" width={100} height={100} />
}
import Image from 'next/image'
export default function Page() {
return <Image src="/profile.png" alt="Profile" width={100} height={100} />
}
開発サーバーの実行
npm run dev
を実行して開発サーバーを起動しますhttp://localhost:3000
にアクセスしてアプリケーションを表示しますapp/page.tsx
ファイルを編集して保存し、ブラウザで更新された結果を確認します
TypeScriptのセットアップ
TypeScriptの最小バージョン:
v4.5.2
Next.jsにはTypeScriptサポートが組み込まれています。プロジェクトにTypeScriptを追加するには、ファイルを.ts
/ .tsx
にリネームしてnext dev
を実行します。Next.jsは必要な依存関係を自動的にインストールし、推奨設定オプションを含むtsconfig.json
ファイルを追加します。
IDEプラグイン
Next.jsにはカスタムTypeScriptプラグインとタイプチェッカーが含まれており、VSCodeや他のコードエディターで高度なタイプチェックとオートコンプリートに使用できます。
VS Codeでプラグインを有効にするには:
- コマンドパレットを開きます(
Ctrl/⌘
+Shift
+P
) - "TypeScript: Select TypeScript Version"を検索
- "Use Workspace Version"を選択

詳細についてはTypeScriptリファレンスページを参照してください。
ESLintのセットアップ
Next.jsにはESLintが組み込まれています。create-next-app
で新しいプロジェクトを作成すると、必要なパッケージが自動的にインストールされ、適切な設定が行われます。
既存のプロジェクトに手動でESLintを追加するには、next lint
をスクリプトとしてpackage.json
に追加します:
{
"scripts": {
"lint": "next lint"
}
}
次に、npm run lint
を実行すると、インストールと設定プロセスがガイドされます。
npm run lint
以下のようなプロンプトが表示されます:
? ESLintをどのように設定しますか?
❯ Strict (推奨)
Base
Cancel
- Strict: Next.jsの基本ESLint設定に加えて、より厳格なCore Web Vitalsルールセットを含みます。ESLintを初めて設定する開発者に推奨される設定です
- Base: Next.jsの基本ESLint設定を含みます
- Cancel: 設定をスキップします。独自のカスタムESLint設定を計画している場合はこのオプションを選択してください
Strict
またはBase
が選択された場合、Next.jsは自動的にeslint
とeslint-config-next
を依存関係としてインストールし、選択した設定を含む.eslintrc.json
ファイルをプロジェクトのルートに作成します。
ESLintを実行してエラーを検出するには、next lint
を実行します。ESLintが設定されると、ビルド時(next build
)にも自動的に実行されます。エラーはビルドを失敗させますが、警告は失敗させません。
詳細についてはESLintプラグインページを参照してください。
絶対インポートとモジュールパスエイリアスの設定
Next.jsはtsconfig.json
とjsconfig.json
ファイルの"paths"
および"baseUrl"
オプションをサポートしています。
これらのオプションを使用すると、プロジェクトディレクトリを絶対パスにエイリアスできるため、モジュールのインポートがより簡単でクリーンになります。例えば:
// 変更前
import { Button } from '../../../components/button'
// 変更後
import { Button } from '@/components/button'
絶対インポートを設定するには、baseUrl
設定オプションをtsconfig.json
またはjsconfig.json
ファイルに追加します。例えば:
{
"compilerOptions": {
"baseUrl": "src/"
}
}
baseUrl
パスを設定するのに加えて、"paths"
オプションを使用してモジュールパスを"alias"
できます。
例えば、以下の設定は@/components/*
をcomponents/*
にマッピングします:
{
"compilerOptions": {
"baseUrl": "src/",
"paths": {
"@/styles/*": ["styles/*"],
"@/components/*": ["components/*"]
}
}
}
各"paths"
はbaseUrl
の場所からの相対パスです。