Skip to content

Astro v3の変更点

Posted on:2023年9月10日

Astroの3.0がリリースされました。 このブログはAstroで作成しており、テンプレートでAstroPaperを利用しています。

Astroのバージョンアップに伴いいくつか変更が必要になったため、簡単にですが変更点をまとめました。

変更点

利用可能なNodeJSのバージョンが18.14.1からに変更

開発時のデフォルトのポートが4321に変更

TypeScriptのverbatimModuleSyntaxがデフォルトで有効化

// Before
import { CollectionEntry, getCollection } from "astro:content"
// After
import { type CollectionEntry, getCollection } from "astro:content"

astro checkが別パッケージとして分離

scopedStyleStrategyのデフォルト値がattributeに変更

defineConfig({
  scopedStyleStrategy: "where",
})

HTTPリクエストメソッドのケースが変更

export async function GET() {
  const posts = await getCollection("blog")
  const sortedPosts = getSortedPosts(posts)
  return rss({
    title: SITE.title,
    description: SITE.desc,
    site: SITE.website,
    items: sortedPosts.map(({ data }) => ({
      link: `posts/${slugify(data)}`,
      title: data.title,
      description: data.description,
      pubDate: new Date(data.pubDatetime),
    })),
  })
}

compressHTMLのデフォルト値が変更

endpointでResponseオブジェクトを返す必要があるようになった

// Before
export const get: APIRoute = async ({ params }) => ({
  body: await generateOgImage(params.ogTitle),
})
// After
export const GET: APIRoute = async ({ params }) =>
  new Response(await generateOgImage(params.ogTitle))