はじめに
このブログの依存パッケージを、pnpmで更新しました。 前回の更新から5日後の作業です。
今回はpnpm outdatedで更新できるパッケージを確認し、
pnpm update --latestで更新しました。
ただし、すべてを無条件に最新版へ上げるのではなく、
型チェックの互換性も確かめています。
更新したパッケージ
次の6つを更新しました。
| パッケージ | 更新前 | 更新後 |
|---|---|---|
@astrojs/mdx |
8.0.3 | 8.1.0 |
astro |
7.3.8 | 7.4.0 |
cssnano |
9.8.0 | 9.9.0 |
postcss |
8.5.30 | 8.5.31 |
sass |
1.105.1 | 1.105.2 |
wrangler |
4.151.0 | 4.151.1 |
pnpm update --latestは、package.jsonのバージョン指定と
pnpm-lock.yamlを一緒に更新します。
そのため、依存の指定だけが新しくなり、インストール時に異なる版が
選ばれる状態を避けられます。
TypeScript 7は見送る
pnpm outdatedでは、TypeScript 7.0.2も最新版として表示されました。
いったん更新してpnpm checkを実行したところ、
astro checkがTypeScript 7に対応していないため失敗しました。
現在使っている@astrojs/checkのpeer dependencyも、
TypeScript 5または6を対象にしています。
この状態でTypeScript 7を採用すると、
プロジェクトの型チェックを通せません。
そこでTypeScriptは6.0.3のままにしました。
pnpm outdatedには引き続きTypeScript 7が表示されますが、
チェックツールが対応するまで更新を保留します。
更新後の確認
更新後にテスト、型チェック、ビルドを実行しました。
pnpm test:221件すべて成功pnpm check:エラーなしpnpm build:172ページを生成して成功pnpm peers check:peer dependencyの問題なし
型チェックでは、Astroのコンテンツスキーマで使っているzに
非推奨の案内が出ています。
エラーではありませんが、別途対応を検討します。
おわりに
今回の更新では、Astroを7.4.0に上げ、 関連するMDX連携やビルドツールも更新できました。 最新版が公開されていても、開発ツールの対応状況を確認し、 プロジェクトのチェックを維持できる版を選ぶことが大切です。
依存パッケージの更新後は、ロックファイルだけでなく、 テスト、型チェック、実際のビルドまで通ることを確かめています。