[小ネタ]Astroという静的サイトジェネレータでWebサイトをサクッと作ってみた

面白そうな静的サイトジェネレータを見つけたので試してみました。
2023.02.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!コンサル部のinomaso(@inomasosan)です。

クラスメソッド入社前は、静的サイトジェネレータの一つであるHugoで個人ブログを書いていました。
それから数年が経ち別の静的サイトジェネレータを触ってみたいと思い調べていたところ、Astroを見つけたのでローカルでWebサイトを動かすところまでやってみました。

Astroとは?

AstroはWebサイトに特化して設計された静的サイトジェネレータとなります。

Next.js、SvelteKit、Nuxt、Remix等のモダンなWebフレームワークはクライアントサイドレンダリングが必要ですが、Astroの場合はサーバーサイドレンダリングを可能な限り活用します。 Webアプリケーションに特化して開発したいのであれば、Astro以外のWebフレームワークを検討していただく方が良いかもしれません。

また、公式ドキュメントの主な特徴には、以下のように記載されています。

  • コンポーネントアイランド: 高速なウェブサイトを構築するための新しいウェブアーキテクチャー。
  • サーバーファーストのAPI設計: ユーザーのデバイスから高コストのハイドレーションをなくします。
  • デフォルトでゼロJS: サイトを遅くするJavaScriptランタイムオーバーヘッドはありません。
  • エッジ対応: DenoやCloudflareのようなグローバルなエッジを含め、どこでもデプロイできます。
  • カスタマイズ可能: Tailwind、MDX、その他100以上のインテグレーションから選択可能です。
  • 特定のUIに依存しない: React、Preact、Svelte、Vue、Solid、Litなどをサポートします。

Astroのドキュメントの多くは日本語に対応しているので、詳細はそちらをご覧いただければと思います。

ただ、翻訳されたドキュメントの運命なのか、英語よりも古い箇所があったため、より正確な情報を得たい場合は言語を英語に切り替えたほうが良いでしょう。

やってみた

検証環境

今回実行した環境は以下の通りです。

項目 バージョン
macOS Monterey 12.6.3
Node.js 19.7.0
npm 9.5.0
Astro 2.0.15

セットアップウィザードを実行

以下のコマンドでプロジェクトを新規作成します。

% npm create astro@latest

初回プロジェクト作成の場合は、インストール確認されるのでyを入力します。

Need to install the following packages:
  create-astro@latest
Ok to proceed? (y)

プロジェクト用に任意のルートディレクトり名を入力します。 ウィザードでディレクトリは自動作成されるため、事前に作成する必要はありません。 今回はtutorialと入力します。

Where should we create your new project?
tutorial

どのテンプレートを使用するかを選択することができます。 今回はInclude sample filesのままとします。

How would you like to start your new project?
● Include sample files (recommended)
○ Use blog template 
○ Empty

npm依存関係のインストールするか選べます。 今回はYesを選択します。

Install dependencies?
● Yes  ○ No

AstroはTypeScriptをサポートしています。 今回はYesを選択します。

Do you plan to write TypeScript?
● Yes  ○ No

TypeScriptの型チェックの厳しさを選択します。 今回はStrictのままとします。

How strict should TypeScript be?
● Strict (recommended)
○ Strictest 
○ Relaxed

gitリポジトリを初期化するかを選択します。 今回はYesを選択します。

Initialize a new git repository? (optional)
● Yes  ○ No

入力した内容でセットアップが完了すると以下が表示されます。

Liftoff confirmed. Explore your project!

         Enter your project directory using cd ./tutorial 
         Run npm run dev to start the dev server. CTRL+C to stop.
         Add frameworks like react or tailwind using astro add.

         Stuck? Join us at https://astro.build/chat

╭─────╮  Houston:
│ ◠ ◡ ◠  Good luck out there, astronaut! ?
╰─────╯

Webサイトの動作確認

ローカルの開発サーバを起動し、ウェブサイトが動作するかを確認していきます。

まずは、プロジェクト用のフォルダに移動します。

% cd tutorial

以下のコマンドでAstroの開発サーバを起動します。

% npm run dev

特に問題なければ、以下のように表示されます。

> tutorial@0.0.1 dev
> astro dev

  ?  astro  v2.0.15 started in 26ms

  ┃ Local    http://localhost:3000/
  ┃ Network  use --host to expose

ブラウザに上記URLを入力し、Webサイトを表示できることを確認していきます。

参考

まとめ

久々に静的サイトジェネレータを触ったのですが、Webサイトの作成を簡単に始められるのは魅力的ですね。 機会があればデプロイガイドも試してみようと思います。

この記事が、どなたかのお役に立てば幸いです。それでは!