この記事は人間が実装を確認したのち、AIが記事を執筆しました。

背景

Next.js 15で静的サイト生成(output: 'export')を使用する際、sitemap.tsの実装でエラーが発生する場合があります。

Error:exportconstdynamic="force-static"/exportconstrevalidatenotconfiguredonroute"/sitemap.xml"with"output:export".

解決方法

この問題は、sitemap.tsに以下の2つのエクスポートを追加することで解決できます:

ieee}mxxxppppsooorrrrrctttts/ia{ccdtpooeepMnnfm/essaastttupialtddrteayemtnvfaaaaupRmln.oiictucdtstaie=toen}'f=sfoirrftocaemelm-sa'sepnt;(ea)xt:ti'cM;'e;tadataRoute.Sitemap{

実装例

iieee}mmxxxpppppcc]c)rooooooo;o;errrrrnnns}ttttttss'/st)utt,aetaulcp)r{{ccdbxtrahrnooebsasilsaiMrnnfatumic:tnoseossasatptPMgrituttuetH'lea`oeitatlUio,emg$dFtedidrtrcm'ae{irymanyelPe,psbfe:atgnvfaE.aiqpaaau=gpnmseupER}mlneataedeanoiicpsgrpU:ngtufcdtrei(rcertraio=e(lnyieo=tocsp}e:=emene[:a/w=s}'sg$p=;'f=ssMe{Daf@oi.e)lagrrftetoteicaena=cem1elmvd>a(=?8-sa.al)='nsepNt(e,=1n/t;(Ea{}era)XR$:xot:To{tui_up0'tcMPta?.;i'eUeg8n;tB.e',gaLS}d'dIi`a;aCt,it_elaSmyRIa'oTpuE:t_=eU'.RrwSLoeiuettkeilmnya'g'ph.tla{tospc:ac/lo/enlsso.tcf,allahtoMsatp:(3(0l0o0c'a;le)=>

動作確認

この実装により、npm run build実行時に/out/sitemap.xmlが正常に生成されます。

注意点

  • dynamic = 'force-static'のみでは不十分で、revalidate = falseも必要です
  • 環境変数やインポートしたモジュールの使用も可能です
  • ビルド時に静的に解決される値であれば、動的な値も使用できます

代替案

もし上記の方法で解決しない場合は、以下の代替案があります:

  1. ビルドスクリプトでsitemap.xmlを生成
  2. publicディレクトリに静的なsitemap.xmlを配置

まとめ

Next.js 15でoutput: 'export'を使用する場合でも、適切な設定を追加することでsitemap.tsを使用したサイトマップ生成が可能です。この方法により、Next.jsの標準機能を活用しつつ、型安全性を保ったサイトマップ生成が実現できます。

参考資料