コース一覧
Next.js公開設計:SEO・画像最適化・デプロイ
本番ビルド

Next.js公開設計:SEO・画像最適化・デプロイ

metadata、動的metadata、OGP、Image、フォント最適化、本番ビルド、マネージド環境・自サーバーへの公開、公開前チェックを扱う全13レッスンの公開プロジェクトです。fleamaを検索・SNS・表示速度まで整え、公開URLを持つ本番サービスとして完成させます。

1
メタデータ・OGP・画像
01. メタデータ15分
02. 動的メタデータ15分
03. OGP15分
04. 画像最適化15分
05. フォント最適化15分
06. つくる - 検索とSNSに強く20分
07. 第7章クイズ15分
2
デプロイと総合制作
01. 本番ビルド15分
02. マネージドへ公開15分
03. 自サーバー案15分
04. 公開前チェック15分
05. 自由拡張20分
06. 完成と次のステップ10分

本番ビルド

build で焼けるページと焼けないページ

ここまでずっと開発モードだった

npm run dev で立ち上げていたサーバーは、開発中だけのものです。ファイルを保存するたびに、その場で必要なぶんだけ作り直して画面に反映してくれます。手を動かしている間はとても便利ですが、本番でこれを使うことはありません。作り直しの仕組みを常に抱えているぶん重く、エラーの中身もそのまま画面に出るからです。

人に見せるときは、先に一度だけまとめて作り、あとはできあがったものを配るだけにします。それが本番ビルドです。

2つに分かれている

本番は、作る側と配る側の2つに分かれています。

next build が作る側です。app/ の中を全部読んで、TypeScript を JavaScript に直し、名前を短くし、あらかじめ組み立てられるページは HTML にしてしまいます。できあがったものは .next というフォルダに入ります。ここで型のエラーが1つでもあると止まるので、build が通ることそのものが点検になります。

next start が配る側です。.next の中身をそのまま返します。読むだけなので速く、ページを開くたびに作り直したりはしません。

順番は決まっていて、build してから start です。build せずに start すると、配るものが無いと言われて止まります。

package.json に名前を付けておく

この3つは毎日打つので、package.json の scripts に名前を付けておきます。create-next-app で作ると最初から入っていますが、中身を知らずに使うのはもったいないので、自分で書いてみます。

JSON

{ "scripts": { "dev": "next dev" } }

こう書いておくと npm run dev で next dev が動きます。デプロイ先のサービスも、この scripts を見て build と start を呼びます。名前を変えてしまうと公開のときに動かなくなるので、この3つは決まった名前のままにします。

演習

package.json の scripts を3つ書き、開発モードと本番モードの違いを表にまとめます。

ヒント

scripts は "dev": "next dev" のように、名前と中身を並べた形です

modes の1行は { command: "npm run dev", happens: "...", when: "..." } の形です

build で作られたものは .next に入り、start はそれを読むだけです

layout.tsx
page.tsx
package.json
プレビュー

できているか

  • 表が3行以上ある
  • 開発モードの行がある
  • ビルドの行がある
  • 本番で配る行がある
  • ビルドの出力先を書いている
  • scripts に dev を書いている
  • scripts に build を書いている
  • scripts に start を書いている
エディタを読み込んでいます