![見出し画像](https://assets.st-note.com/production/uploads/images/115083387/rectangle_large_type_2_3f4a292817da4c3828b32ae4c71d730a.png?width=1200)
【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の環境を作成します。
![](https://assets.st-note.com/img/1693609181927-y6TVal4tBI.jpg?width=1200)
バージョン指定しても無視され最新バージョンがインストールされてしまいます。
package.jsonを編集して旧バージョンに指定しなおします。
![](https://assets.st-note.com/img/1693609285337-7LwkBmBIF4.jpg?width=1200)
旧バージョンをインストールします。
$ 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ディレクトリを有効化します。
![](https://assets.st-note.com/img/1693609478505-6qff5Hmdhn.jpg?width=1200)
appディレクトリとpage.tsxファイルを作成します。
![](https://assets.st-note.com/img/1693609578383-mgPOi6BBAs.jpg?width=1200)
「npm run dev」でサーバを起動すると以下のエラーが発生します。
![](https://assets.st-note.com/img/1693609637673-94dM4NhSLs.jpg?width=1200)
appディレクトリと重複とありますのでpagesディレクトリ配下を削除します。
![](https://assets.st-note.com/img/1693609732141-nrGxTo4GGw.jpg?width=1200)
そうするとappディレクトリ配下にlayout.tsxとhead.tsxが自動で作成されます。
![](https://assets.st-note.com/img/1693609802186-TY6Vkq98kW.jpg?width=1200)
head.tsxにタイトルを記載します。
![](https://assets.st-note.com/img/1693609937501-8DRmXhgWt3.jpg?width=1200)
正しく反映されています。
![](https://assets.st-note.com/img/1693609964235-PN1Dzjn3YG.jpg?width=1200)
2.Ver13.4.xでの検証
同様に作成します。App Routerは一旦Noで作成します。
![](https://assets.st-note.com/img/1693610070547-mIc19tDhMa.jpg?width=1200)
同じ13.1.xのときと同じ手順でappディレクトリへ切り替えますが、
head.tsxは作成されませんでした。
![](https://assets.st-note.com/img/1693610159354-OZFkP4alSm.jpg?width=1200)
手動で作成しても反映されません。
![](https://assets.st-note.com/img/1693610265843-L5Zea9HPYL.jpg?width=1200)
タイトルがデフォルトのまま
![](https://assets.st-note.com/img/1693610364350-uZllXIlmBc.jpg?width=1200)
最新バージョンでは、自動でhead.tsx は作成されなくなり、
手動で作成しても反映されない仕様に変わったようです。
3.今後の対応
今後、また変わるかもしれませんが、対策として
2 つの方法があるかと思います。
その1:layout.tsxに記載
![](https://assets.st-note.com/img/1693610729561-2ckJPBkKky.jpg?width=1200)
その2:layout.tsxにhead.tsxをインポート
![](https://assets.st-note.com/img/1693610814902-i2AQfU9Oq7.jpg?width=1200)
公式ドキュメントは、このような記載でした。(23年9月初現在)
![](https://assets.st-note.com/img/1693616707728-S3UggD6F2T.jpg?width=1200)
では