メモログ

Astroを更新

急に思い立ってAstroを久しぶりにアップデートしました。Astroは5.9から7.3.5まで上がった。

アップデート後にビルドすると、import.meta.url を基準に public ディレクトリを探していたところがうまく動かなくなった。prerender時には dist/.prerender/chunks 以下を基準にしてしまうようなので、Astroの publicDir を使うように変更。

import { publicDir } from "astro:config/server";
import { fileURLToPath } from "node:url";

const publicPath = fileURLToPath(publicDir);

画像の背景色を設定するのに利用していた colorthief も、更新後にexportのところでエラーになるようになったので、こちらは sharp に置き換え。

const { dominant } = await sharp(source).stats();
color = chroma(dominant.r, dominant.g, dominant.b).hex();

そして、自作の primitive_bulk も imagemin の依存関係が問題になっていたので、とりあえず svgo を直接使う形に置き換えて、バージョン2.4.0をリリース。

最後に、gh-pages の依存関係にも脆弱性が残っていたので、gh-pages を使ったデプロイをやめて、GitHub ActionsからGitHub Pagesへデプロイする形に変更。

これで npm audit の報告がゼロになりました。

だいぶ面倒くさかったけど、依存関係も減ったので、これできっとしばらくは大丈夫。

更新作業は個人利用のChatGPTに適当に投げつつ手作業で対応したけど、今さらながらCodexでやれば良かったかなと思った。

私について

Yutaka Yamaguchi
東京在住。TypeScript, Node.js, Reactなどフロンエンドが主力。Perlも書く。SwiftやRubyも過去には使ってた。過去のTOEIC 860くらい。