Astro 5 にアップデートした

Icon

70_10

このブログを Astro 5 にアップデートしました。

アップデート内容は Upgrade to Astro v5 | Docs にまとめられています。

このブログの Astro 5 アップデート対応まとめ

アップデートで対応した内容は以下の 5 つ。

  1. Astro 関連のパッケージをアップグレード
  2. Content Collections API から Content Layer API への移行
  3. post.slug から post.id への変更
  4. post.render()render(post) へ変更
  5. src/env.d.ts の削除と tsconfig.json の更新

1. Astro 関連のパッケージをアップグレード

以下のコマンドでパッケージを最新バージョンにアップグレードしました。

pnpm add -E @astrojs/partytown@latest @astrojs/rss@latest @astrojs/tailwind@latest astro@latest @astrojs/react@latest

2. Content Collections API から Content Layer API への移行

Astro v2 から使用されていた Content Collections API は終了し、Content Layer API に移行しました。この変更により、パフォーマンスが向上するとのことです。

Content Collections API では src/content にコンテンツを配置する必要がありましたが、Content Layer API では自由な配置が可能になりました。そのため、src/content.config.ts でコンテンツの場所を指定する必要があります。

主な対応は以下の通りです。

  • src/content/config.tssrc/content.config.ts に移動
  • Content の loader を設定

3. post.slug から post.id への変更

slugid に変更しました。

4. post.render()render(post) へ変更

render()astro:content パッケージに移動したため、post.render()render(post) に書き換えました。

5. src/env.d.ts の削除と tsconfig.json の更新

Astro 5 では、型参照に .astro/types.d.ts を使用し、tsconfig.jsonincludeexclude を設定する方法が推奨されています。
また、astro syncsrc/env.d.ts が不要になり、作成や更新が行われなくなりました。