見出し画像

【IT】Next.js Ver.13でのhead.tsx

皆さま
こんにちは

Next.jsのVer.13の解説ブログを参照させて頂いたときに
pagesディレクトリからappディレクトリへ変換時に
「layout.tsx」
「head.tsx 」
が作られるとありましたが、最新のNext.js Ver.13.4.xでは、
自動では作成されませんでした。

また、手動で作成しても反映されることはありませんでした。

今回、Stableになる前のバージョン13.1.xと最新バージョン13.4.xで
動作検証をしました。


1.Ver13.1.xでの検証

先ず、13.1.xの環境を作成します。

バージョン指定しても無視され最新バージョンがインストールされてしまいます。

package.jsonを編集して旧バージョンに指定しなおします。

旧バージョンをインストールします。

$ cd nextjs13-1-6

$ npm i

added 2 packages, removed 6 packages, changed 12 packages, and audited 275 packages in 15s

105 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Appディレクトリを有効化します。

appディレクトリとpage.tsxファイルを作成します。

「npm run dev」でサーバを起動すると以下のエラーが発生します。

appディレクトリと重複とありますのでpagesディレクトリ配下を削除します。

そうするとappディレクトリ配下にlayout.tsxとhead.tsxが自動で作成されます。

head.tsxにタイトルを記載します。

正しく反映されています。

2.Ver13.4.xでの検証

同様に作成します。App Routerは一旦Noで作成します。

同じ13.1.xのときと同じ手順でappディレクトリへ切り替えますが、
head.tsxは作成されませんでした。

手動で作成しても反映されません。

タイトルがデフォルトのまま

最新バージョンでは、自動でhead.tsx は作成されなくなり、
手動で作成しても反映されない仕様に変わったようです。

3.今後の対応

今後、また変わるかもしれませんが、対策として
2 つの方法があるかと思います。

その1:layout.tsxに記載

その2:layout.tsxにhead.tsxをインポート

公式ドキュメントは、このような記載でした。(23年9月初現在)

では

いいなと思ったら応援しよう!