Next.jsをパッケージからインストールしNext.jsプロジェクトへTypescript環境を構築して動かすまでの手順
Next.jsをパッケージからインストールしNext.jsプロジェクトへTypescript環境を構築して動かすまでの手順をメモしました。
Next.js
Nex.jsとは?
Next.jsについて詳しくはこちらの記事を参考にしてください。
環境
- Mac OS Big SUR 11.3.1
- yarn 1.22.10
- Node v14.15.3
ファイル操作で利用するUnixコマンドについて
基本的なディレクトリ作成やファイル操作はUnixコマンドを利用します。
Unixコマンドについて詳しくはこちらの記事を参考にしてください。
Next.js環境の構築
Next.js環境を構築してい来ます。
プロジェクトの初期化
プロジェクトディレクトリを作成
~/next-sampleというプロジェクトディレクトリを作成します。
terminal$ mkdir ~/next-sample
プロジェクトディレクトリへ移動
作成した~/next-sampleディレクトリへ移動します。
terminal$ mkdir ~/next-sample
プロジェクトの初期化
yarnでプロジェクトの初期化を行います。
npmで実施する方は必要に応じて変更してください。
terminal$ yarn init -y
yarn init v1.22.10
warning The yes flag has been set. This will automatically answer yes to all questions, which may have security implications.
success Saved package.json
✨ Done in 0.08s.
package.jsonが作成されました。
パッケージのインストール
next.jsのインストール
yarn installコマンドでnextをインストールします。
terminal$ yarn add next
yarn add v1.22.10
info No lockfile found.
// 中略
✨ Done in 49.83s.
Reactのインストール
Next.jsだけインストールしてアプリを起動しようとすると
Reactが必要だよと怒られます。
terminal$ yarn run next dev
// 中略
The module 'react' was not found. Next.js requires that you include it in 'dependencies' of your 'package.json'. To add it, run 'npm install react'
The module 'react-dom' was not found. Next.js requires that you include it in 'dependencies' of your 'package.json'. To add it, run 'npm install react-dom'
yarn installコマンドでreactとreact-domをインストールします。
terminal$ yarn add react react-dom
yarn add v1.22.10
info No lockfile found.
// 中略
success Saved lockfile.
success Saved 3 new dependencies.
info Direct dependencies
├─ react-dom@17.0.2
└─ react@17.0.2
info All dependencies
├─ react-dom@17.0.2
├─ react@17.0.2
└─ scheduler@0.20.2
✨ Done in 7.77s.
TypeScriptのインストール
Next.jsをTypeScriptでかきたいためtypescriptをインストールします。
yarn installコマンドでtypesscriptと型の定義ファイルである@types/reactと@types/nodeを合わせてインストールします。
アプリケーションコードではなく環境ようのコードのため-Dオプションを付与します。
terminal$ yarn add -D typescript @types/react @types/node
yarn add v1.22.10
info No lockfile found.
// 中略
success Saved lockfile.
success Saved 6 new dependencies.
info Direct dependencies
├─ @types/node@15.12.2
├─ @types/react@17.0.11
└─ typescript@4.3.2
info All dependencies
├─ @types/node@15.12.2
├─ @types/prop-types@15.7.3
├─ @types/react@17.0.11
├─ @types/scheduler@0.16.1
├─ csstype@3.0.8
└─ typescript@4.3.2
✨ Done in 5.50s.
インストールしたパッケージの確認
package.jsonを開きインストールされたパッケージを確認します。
perl "dependencies": {
"next": "^10.2.3",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@types/node": "^15.12.2",
"@types/react": "^17.0.11",
"typescript": "^4.3.2"
}
サンプルページの作成
pagesディレクトリの作成
Next.jsではデフォルトでpagesディレクトリの階層にそって
ルーティングが作成されます。
mkdirコマンドでpagesディレクトリを作成します。
terminal$ mkdir ~/next-sample/pages
トップページの作成
トップページとなるテンプレートファイルとして
pagesディレクトリの直下にindex.tsxを作成します。
terminal$ vim ~/next-sample/pages/index.tsx
下記内容を追記します。
index.tsx
index.tsximport React, { ReactElement } from 'react'
const Home = (): ReactElement => {
return <div>Hello, world!</div>;
};
export default Home;
これでNext.jsアプリの起動する環境の準備ができました。
Next.jsアプリの起動
アプリケーションを起動させていきます。
npm scriptsへ起動コマンドの追加
package.jsonのscriptsへ起動コマンドを追記します。
Next.jsの開発時の起動コマンドは next devです。
terminal$ vim ~/next-sample/package.json
下記を追記します。
追記する内容
json "scripts": {
"dev": "next dev"
},
package.json全体
package.json{
"name": "next-sample",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"dev": "next dev"
},
"dependencies": {
"next": "^10.2.3",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@types/node": "^15.12.2",
"@types/react": "^17.0.11",
"typescript": "^4.3.2"
}
}
起動コマンドの実行
追記したdevコマンド実行します。
terminal$ yarn dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
// 中略
wait - compiling...
event - compiled successfully
コンソールへsuccessfullyと表示されたらアプリケーション起動は成功です。
ブラウザからアクセス
アプリケーションが起動したのでブラウザからアクセスしてみます。
http:localhost:3000へアクセスしてみてください。
Hello, world!と表示が確認できます。
articleNext.js の 観測可能性入門:OpenTelemetry/Sentry/Vercel Analytics 連携
articleNext.js でドキュメントポータル:MDX/全文検索/バージョン切替の設計例
articleNext.js でインフィニットスクロールを実装:Route Handlers +`use` で滑らかデータ読込
articleRedis 使い方:Next.js で Cache-Tag と再検証を実装(Edge/Node 両対応)
articleNext.js の RSC 境界設計:Client Components を最小化する責務分離戦略
articleNext.js ルーティング早見表:セグメント・グループ・オプションの一枚まとめ
articleESM/CJS 地獄から脱出!「ERR_REQUIRE_ESM」「import 文が使えない」を TypeScript で直す
articleTypeScript 型安全なフィーチャーフラグ設計:判別可能共用体で運用事故を防ぐ
articleTypeScript satisfies 演算子の実力:型の過剰/不足を一発検知する実践ガイド
articlePlaywright × TypeScript 超入門チュートリアル:型安全 E2E を最短構築
articleTypeScript 型カバレッジを KPI 化:`type-coverage`でチームの型品質を可視化する
articleTypeScript 公開 API の型設計術:`export type`/`interface`/`class`の責務分担と境界設計
articleGrok プロンプト・テンプレ 100 連発:要約/翻訳/コード/分析 早見表
articleGitHub Copilot Workspace と Cursor/Cline の比較検証:仕様駆動の自動化能力はどこまで?
articleGitHub Actions 署名戦略を比べる:SHA ピン留め vs タグ参照 vs バージョン範囲
articlegpt-oss が OOM/VRAM 枯渇で落ちる:モデル分割・ページング・バッチ制御の解決策
articleGPT-5 ツール呼び出しが暴走する時の診断フロー:関数設計/停止条件/リトライ制御
articleGit の index.lock 残留問題を解決:並行実行・クラッシュ後の正しい対処法
blogiPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
blogGoogleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
blog【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
blogGoogleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
blogPixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
blogフロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
review今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
reviewついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
review愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
review週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
review新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
review科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来
