[Rollup] buildStart() フックにて、アセットを配置する
2024-11-23
構成
・SvelteKit で SSG ・コンテンツを /data というディレクトリに置いている
</>
├─ src
│ └─ routes
│ ├─ +page.server.ts
│ └─ +page.svelte
└─ data // コンテンツ
悩み
記事データは +page.server.ts の load() で読み込めば良いが、アセットはどうしようか。
</>
├─ src
│ └─ routes
│ ├─ +page.server.ts // 記事データ読み込み
│ └─ +page.svelte
└─ data
├─ article.md // 記事データ
└─ image.png // アセット (主に画像ファイル) // どうしようか
結論
Rollup の buildStart() フックにて、アセットを /static へ配置する
Rollup の buildStart() フック
Rollup にはフックがいくつかある ・buildStart ・buildEnd ・options buildStart() はその名の通り、ビルド開始時に呼ばれる様子。ドキュメントのフロー図が分かりやすかった
コード
</>
メモ
実行結果
ビルドすると file copied! という文字列が出力される。 うまく呼ばれてそう。
</>
$ pnpm build
> vite build
vite v5.4.11 building SSR bundle for production...
file copied!
✓ 1918 modules transformed.