米Astro Technology Companyは、JavaScript/TypeScriptに対応するWebフレームワーク「Astro」の新版である「Astro 2.1」を3月8日(現地時間)に公開した。AstroはMITライセンスで公開しているオープンソース・ソフトウェア。
Astroの最大の特徴は、JavaScriptを可能な限りサーバー・サイドで処理し、クライアントには静的なHTMLだけを送信しようとする点にある。クライアント側でのJavaScriptの処理を排除することで、ページの読み込みから操作可能になるまでの時間を短縮している。そして、「React」「Preact」「Svelte」「Vue」「SolidJS」「AlpineJS」「Lit」など多様なユーザー・インターフェイス構築用ライブラリを組み合わせて使えることも特徴だ。これらのライブラリのJavaScriptも可能な限りサーバー・サイドで処理する。
「Astro 2.1」ではまず、画像を操作する機能を実験的に本体に組み込んだ。従来は「@astrojs/image」などの追加コンポーネントをインストールする必要があったが、今回加わった機能を利用すれば、追加コンポーネントなしで、画像の幅や高さ、画質を指定できる。画像の幅と高さのどちらかを指定すれば、適切な縦横比で表示するように調節してくれる。
また、米StripeがMarkdownを基に開発した文書フォーマット「Markdoc」に対応する追加コンポーネント「@astrojs/markdoc」の提供を試験的に始めた。AstroではWebページの記述にMarkdownやMDXを使用できるが、MDXファイルの数が多くなると処理が遅くなる傾向がある。Astro Technology Companyがベンチマーク・テストで検証したところ、Markdocでファイルを記述すると、MDXファイルに比べて3倍の速さで処理できることが分かった。Astro Technology Companyは引き続きMDXファイルにも対応し、柔軟な記述が可能なMDXと、大量のファイルを高速に処理できるMarkdocのどちらをユーザーが好むかを見極めたいとしている。
さらに、プロジェクト内のTypeScriptを対象に型チェックを実行する「astro check」コマンドに、「--watch」というフラグを追加した。このフラグを追加すると、前回実行時から変更されたファイルを検知し、そのファイルを対象に型チェックを実行する。個々のプロジェクトが持つ「package.json」ファイルにこのコマンドを記述しておくと、複数のプロジェクトの型チェックを並列で実行できる。
そして、Astroが生成するWebページのパスを取得する「getStaticPaths()」関数で得たオブジェクトを確認するヘルパー関数「InferGetStaticParamsType」「InferGetStaticPropsType」を追加した。前者はオブジェクトのパラメータの型を、後者はオブジェクトのプロパティの型を返す。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です