Next.js

Next.jsの環境構築:Pages Routerでインストールから起動まで

この記事でわかること

create-next-appでTypeScriptとPages Routerの学習環境を作成。Node.jsの要件、作成時の選択、ページ編集、開発サーバーと本番ビルドの手順を解説します。

Next.jsのプロジェクトは、公式のcreate-next-appを使うと、React・TypeScript・開発用コマンドなどをまとめて準備できます。この記事では、既存の入門記事と同じPages Routerを選び、TypeScriptでページを表示するところまで進めます。

App Routerは新規プロジェクトの標準的な選択肢ですが、src/app/page.tsxを使う構成と、この記事のsrc/pages/index.tsxを使う構成では説明が異なります。途中で両方を混ぜず、作成時に選んだルーターを確認してください。

開発環境を準備してページを表示する

Node.jsとnpmを確認する

2026年9月の確認時点で、最新のNext.js公式インストールガイドはNode.js 20.9以上を最低要件としています。最低要件を満たすだけでなく、利用時点でサポートされているNode.jsのLTSを選びます。古い記事にあるNode.js 14.6という要件を、現在の最新版の導入条件には使わないでください。

ターミナルで次を実行します。先頭に$を付ける必要はありません。

node --version
npm --version

コマンドが見つからなければ、Node.js公式ダウンロードから環境に合う方法で導入し、ターミナルを開き直します。対応OSはmacOS、Windows、Linuxです。既存プロジェクトでは、先にpackage.jsonや開発環境の指定も確認してください。

TypeScriptのプロジェクトを作成する

プロジェクトを保存したい親ディレクトリで、次のコマンドを実行します。my-next-appという名前の新しいディレクトリが作成されます。

npx create-next-app@latest my-next-app --ts --use-npm
cd my-next-app
npm run dev

設定を選択する画面が出たら、推奨設定を一括選択せず、カスタマイズを選びます。この記事に合わせる主要な選択は次のとおりです。質問の順番や表記はCLIのバージョンで変わることがあります。

  • TypeScriptは有効にする。
  • src/ディレクトリは使用する。
  • App Routerは使用しない。これでPages Routerを選ぶ。
  • スタイルの基礎を学ぶ段階ではTailwind CSSを使用しなくてもよい。
  • リンターはESLintなどを選択し、生成された設定を使う。

npm run devは開発サーバーを起動するコマンドです。ターミナルに表示されたURLへアクセスします。通常はhttp://localhost:3000ですが、使用中のポートなどによって変わります。停止する場合はターミナルでCtrl+Cを押します。

@latestは実行時点の最新版を取得する指定です。Next.js 13の環境を再現する指定ではありません。導入後はロックファイルを保存して、同じ依存関係を復元できるようにします。

最初のページを編集する

Pages Routerを選んだことを確認して、src/pages/index.tsxを次の内容に置き換えます。既存のサンプルが使っていたCSSのimportは、この例には不要です。

import Head from 'next/head';

type Feature = {
  id: string;
  label: string;
};

const features: Feature[] = [
  { id: 'typescript', label: 'TypeScriptで型を確認する' },
  { id: 'routing', label: 'ファイルからページを作る' },
];

export default function HomePage() {
  return (
    <>
      <Head>
        <title>はじめてのNext.js</title>
        <meta name="description" content="Next.jsの学習用ページです。" />
      </Head>
      <main>
        <h1>Next.jsの開発を始めよう</h1>
        <ul>
          {features.map((feature) => (
            <li key={feature.id}>{feature.label}</li>
          ))}
        </ul>
      </main>
    </>
  );
}

保存すると開発サーバーが変更を反映します。src/app/page.tsxしか存在しない場合はApp Routerのプロジェクトです。その場合、この例をそのままApp Routerへ追加せず、ルーターの選択から確認してください。

TypeScriptは、たとえばlabelへ数値を入れる間違いを編集時に検出できます。ただし、外部APIの実データを自動で検証するわけではなく、すべての実行時エラーを防ぐものでもありません。

JavaScriptやYarnを使いたい場合

JavaScriptのプロジェクトは--jsを指定できます。以下は別の新規プロジェクトを作るコマンドなので、先ほど作ったプロジェクト内では実行しません。

npx create-next-app@latest my-js-app --js --use-npm

TypeScriptでは画面のファイルに.tsx、JavaScriptでは.jsxなどを使います。JavaScriptを選ぶ場合、前のコードのtype Feature: Feature[]は書けません。

Yarnをすでに利用している場合は、公式CLIをyarn create next-app my-next-app --typescriptでも呼び出せます。ひとつのプロジェクトでnpmとYarnのロックファイルを混在させず、チームで使用するパッケージマネージャーを統一します。

本番向けのビルドを確認する

開発サーバーを停止してから、次を実行します。ここではNode.jsサーバーで公開する通常の構成を前提にしています。

npm run build
npm run start

ビルドは型エラーやページ生成の問題を確認する機会にもなります。npm run startは作成済みの本番ビルドを起動するため、先にビルドが成功している必要があります。

output: 'export'で静的HTMLを出力する構成では、公開するのはout/の内容です。その場合はnext startでの起動とは手順が異なります。詳しくはSSGの設定と注意点を参照してください。

よくあるつまずき

  • nodenpmが見つからない場合は、インストールとターミナルのPATHを確認する。
  • ページが変わらない場合は、開いているURLと起動したプロジェクトのディレクトリを確認する。
  • src/pages/index.tsxが見つからない場合は、App Routerやsrc/を使用しない設定で生成していないか確認する。
  • 既存プロジェクトを引き継いだ場合は、新規作成コマンドを再実行せず、付属の説明とロックファイルに従って依存関係を復元する。

関連記事と公式資料

構成を理解するにはディレクトリ構成と役割、画面の部品を作るにはコンポーネントの基礎へ進んでください。

作成した環境を再現する

使用バージョンを記録する

npm ls next react typescriptで導入したバージョンを確認し、package.jsonとロックファイルを保存します。記事の検証環境と異なる場合は、診断や設定項目の違いを公式資料で確認してください。

開発表示と本番ビルドを確かめる

開発サーバーでページが表示されても、本番ビルドが成功するとは限りません。必要な環境変数やデータ取得先を用意し、ビルドの終了コードと、選んだ配信方式での表示を確認します。

Next.jsとは・ルーターの違い・学習順を確認する

y.
WRITTEN BY

y_ymo10

SEの部屋で、JavaScript・TypeScript・React.js・Next.jsの開発ノートを公開しています。

ほかの開発ノートを読む →