ビルドとデプロイ
Netlify・Vercel へのデプロイ方法と、ビルドキャッシュの仕組みを解説します。
notro-tail は Astro の静的ビルドをそのまま使うので、Astro をサポートするホスティングサービスならどこでもデプロイできます。
ローカルビルド
npm run build
ビルド成果物は apps/notro-tail/dist/ に出力されます。astro check による型チェックもビルド時に自動実行されます。
Netlify
リポジトリルートの netlify.toml を使えば最小設定でデプロイできます。
[build]
base = 'apps/notro-tail'
command = 'npm run build'
publish = 'dist'
[build.environment]
NODE_VERSION = '22'
Netlify の「Environment variables」に NOTION_TOKEN と NOTION_DATASOURCE_ID を追加してください。
Vercel
Vercel では「Root Directory」を apps/notro-tail に設定し、環境変数を追加するだけで動作します。
キャッシュの仕組み
notro-tail は last_edited_time をダイジェストとして Content Collections のストアに保存します。前回ビルド以降に編集されたページだけ再取得するため、記事数が増えてもビルドが遅くなりにくい設計です。
| 再取得条件 | 説明 |
last_edited_time が変わった | Notion で編集された |
| プリサインド S3 URL が含まれる | 画像 URL が期限切れになる前に更新 |
| ページが削除された | ストアから削除 |
画像の最適化
Notion の画像は期限付き S3 プリサインド URL が使われます。notro-tail のカスタム画像サービスが X-Amz-* クエリパラメーターをキャッシュキーから除去するため、ビルドをまたいで Sharp のキャッシュが再利用されます。