2022-12-24

Astroの設定を見直す。ドキュメントはちゃんと読みましょう

アドベントカレンダーのネタがてら Astro を先日触ってみた。

雑にやり過ぎてて明らかに無駄だったのを修正してみた。
とりあえず詳細ページの取得部分だけ。

export async function getStaticPaths(){
    const response = await fetch("https://example.com/api",
        {
            method:'POST',
            headers: {
                'Content-Type':'application/json',
                'Authorization': 'hogehoge',
            },
            body: JSON.stringify({
                query: `
                    query {
                        entries(limit:3000,section:"article",siteId:1,typeId:1){
                            title
                            id
                            url
                            uri
                            slug
                            postDate @formatDateTime(format: "Y-m-d")
                            ... on article_article_Entry {
                                id
                                contentTag{
                                    title
                                    id
                                }
〜〜略〜〜
                        }
                    }
                }`,
            }),
        })
    const json = await response.json();
    const entries = json.data.entries
    return entries.map((entry) => ({
        params: {
            slug: entry.slug,
        },
        props: {
            title : entry.title,
            articlebody: entry.articlebody,
            postDate : entry.postDate
        },
    }));
}
const { slug } = Astro.params;
const { title, articlebody, postDate } = Astro.props;

詳細ページの設定変更後が72秒くらい。 元々が 438.96s。
再度ビルドしても36秒くらい。

詳細ページのビルドはかなり早そう。

07:07:57 AM [build] 2911 page(s) built in 36.85s

タグアーカイブが時間かかってそう。
タグをリストで取って、そっから対象の記事を取りに行くっていうのの繰り返しだからだとはおもうけど。

ビルド済みを消しても70秒くらい。

02:17:31 PM [build] 2913 page(s) built in 70.82s

その状態で再ビルドで 35秒くらい

02:28:55 PM [build] 2913 page(s) built in 35.52s