先週 ホームページ構築ツールのAstroをバージョン3.6に更新しました というブログを書いたら、その日に Astro 4.0 がリリースされました❗
3.6にアップデートしておいて良かった・・・😃
- The Astro Dev Toolbar
- Internationalization (i18n) routing
- Incremental Content Caching (Experimental)
- New View Transition APIs
- Redesigned logging
- Redesigned documentation
など、たくさんの新機能が実装されています。
Astro4.0へのアップグレード
EY-Office のサイトに直接関係がありそうなのはIncremental Content Cachingでしょうか、とりあえずAstro4.0へのアップグレードしました。
公式ドキュメントの Astro v4へのアップグレード に書かれているようにnpx @astrojs/upgrade
を実行しました。
しかし、エラーになってしまいました。🥹
$ npx @astrojs/upgrade
・・・
██████ Installing dependencies with npm...
▲ error Dependencies failed to install, please run the following command manually:
npm install @astrojs/mdx@2.0.0 @astrojs/rss@4.0.1 astro@4.0.3
$
エラーメッセージの最後にある以下の行を実行しましたが、依存関係のエラーになってしまいました。
$ npm install @astrojs/mdx@2.0.0 @astrojs/rss@4.0.1 astro@4.0.3
原因は、 @astrojs/mdx@2.0.0
は astro@4.0.3
に依存しているので、まず astro@4.0.3
をインストールしないと行けないのです。以下の様に実行したところアップグレードが成功しました。
$ npm install astro@4.0.3
・・・
$ npm install @astrojs/mdx@2.0.0 @astrojs/rss@4.0.1
・・・
$ npx @astrojs/upgrade
astro Integration upgrade in progress.
◼ astro is up to date on v4.0.3
◼ @astrojs/mdx is up to date on v2.0.0
◼ @astrojs/rss is up to date on v4.0.1
✔ Beautiful. Your integrations are up-to-date.
さて、速度はどうでしょうか ?
前回と同じ、ビルドastro build
の実行時間を計測してみました。
バージョン | ビルド時間 |
---|---|
2.3 | 8.4 秒 |
3.6 | 7.7 秒 |
4.0 | 7.9 秒 |
あれ! 遅くなってる。🥹
さらなる高速化(1)
みなさん、Bun を知っていますか、最近あらわれた Node.js 互換のJavaScript実行環境です。肉まんのアイコンが可愛いですね。😄
ホームページにあるように Bun の特徴の1つは高速性です。さらにNode.jsと互換性が高いのでBunをインストールすれば、Astroは動きます。Astroのドキュメントにも Use Bun with Astro というページも正式にサポートされているようです。
Bunのインストール手順はInstallationに書かれていますが、私はHomebrewを使っているので、brewコマンドでインストールしました。
$ brew tap oven-sh/bun
$ brew install bun
ビルドの実行時間ですが、Node,js + バージョン3.6より早いですね。😃
JS | バージョン | ビルド時間 |
---|---|---|
Node.js | 2.3 | 8.4 秒 |
Node.js | 3.6 | 7.7 秒 |
Node.js | 4.0 | 7.9 秒 |
Bun | 1.0 | 7.4 秒 |
さらなる高速化(2)
Astro4.0には Incremental Content Caching (Experimental) があります、Astroドキュメントのビルド時間が80%も速くなったと書かれています❗
早速に設定を追加し試しましたが、わずかにしか早くなりませんでした。🥹
この機能はAstro V2で導入されたコンテンツコレクションのAPIをキャッシュしているようです。実はEY-Office サイトはAstro V1で作られているので高速化されないのかも知れません。
ここが次の課題ですね。つづく・・・