Skip to content
Cloud AI エンジニア入門ガイド
Go back

02. Astroの環境構築とプロジェクト構成

この章の全体像として、動作要件、作成する、構成を知る、起動するの4つを番号順に並べ、手元で動かして構成を説明できるようになることを示した図

シリーズ目次前章: 01. Astroとは何か:コンテンツ中心という選択次章: 03. .astroコンポーネントの基本

Table of contents

Open Table of contents

この章のねらい

Astroプロジェクトを実際に作って、開発サーバーが立ち上がるところまで進めます。生成されたディレクトリが何のためにあるのかも見ておきます。ここを飛ばすと、以降の章でファイルの置き場所に毎回迷います。

動作要件

Astroを動かすにはNode.jsが必要です。公式ドキュメントの要件は次のとおりです。

用語: Node.jsは、ブラウザの外でJavaScriptを実行するための環境です。Astroはビルド時にNode.js上で動作し、HTMLを生成します。

Node.jsの奇数バージョンは開発版という位置づけで長期サポートの対象外のため、Astroもサポート対象から外しています。手元のバージョンは次のコマンドで確認できます。

node -v

動くバージョンと動かないバージョンを並べると、次のとおりです。

Astroが動作するNode.jsはv22.12.0以上かつ偶数バージョンであり、古いv20と奇数のv23・v25は対象外、v22.12.0以上とv24が対象になることをバージョンごとに並べて示した図

パッケージマネージャーは npm、pnpm、Yarn のいずれでも構いません。この章では npm を例に説明します。

プロジェクトを作成する

対話式のセットアップウィザードを使うのが最も簡単です。

npm create astro@latest

実行すると、プロジェクト名、テンプレートの選択、TypeScriptの設定、依存関係のインストール、Gitリポジトリの初期化などを順に尋ねられます。迷ったら、提示される既定値を選んでおけば問題ありません。

テンプレートを指定して作成する

ウィザードを介さず、テンプレートを直接指定することもできます。

# 公式サンプルから作成する
npm create astro@latest -- --template blog

# GitHubリポジトリをテンプレートにする
npm create astro@latest -- --template <your-org>/<your-repo>

作成時にインテグレーション(拡張機能)を同時に追加することも可能です。

npm create astro@latest -- --add react --add partytown

インテグレーションについては12. Astroのビルドとデプロイで改めて触れます。

標準的なディレクトリ構成

作成されたプロジェクトは、おおむね次のような構成になっています。

Astroプロジェクトのディレクトリ構成を、ルート直下のsrc・public・設定ファイルと、src配下のpages・components・layouts・stylesに分けて示した図

場所役割
src/Astroが処理・最適化する対象のソースコード全般
src/pages/必須。ここに置いたファイルがそのままページとURLになる
src/components/再利用するコンポーネントを置く慣例的な場所
src/layouts/複数ページで共有する外枠(ヘッダー、フッターなど)を置く
src/styles/CSSやSassをまとめる慣例的な場所
public/加工せずそのまま配信するファイル(favicon.icorobots.txt、フォントなど)
astro.config.mjsAstroの設定ファイル
package.json依存パッケージとnpmスクリプト
tsconfig.jsonTypeScriptの設定

特別扱いされるのは src/pages/ だけです。公式ドキュメントも、これがなければサイトにページもルートも存在しないと書いています。逆に言えば src/pages/ 以外のディレクトリ名はただの慣例なので、好きに組み替えて構いません。

src/public/ の違い

この2つの使い分けで、最初はたいていつまずきます。

違いはひとつ、ファイルがビルド処理を通るかどうかだけです。

srcに置いたファイルはAstroのビルド処理を通ってバンドルや圧縮の対象になり、publicに置いたファイルは加工されず素通りしてそのままの名前で配信されることを、左右に並べて比較した図

URLを固定したいファイルとAstroに触られたくないファイルは public/、最適化してほしいファイルは src/。これで大きく外しません。画像の扱いは11. Astroの画像最適化とView Transitionsで詳しく扱います。

開発サーバーを起動する

プロジェクトのディレクトリで次を実行します。

npm run dev

既定ではポート4321で起動し、http://localhost:4321/ にアクセスすると画面を確認できます。ファイルを保存すると、その変更が自動的に反映されます(HMR、ホットモジュールリプレースメント)。

主なフラグは次のとおりです。

フラグ意味
--port <number>ポート番号を変更する(既定は4321)
--host同一ネットワークの別端末からアクセスできるようにする
--open起動と同時にブラウザを開く
--verbose詳細なログを出力する

バックグラウンド起動(Astro 7以降)

Astro 7では、開発サーバーをバックグラウンドプロセスとして起動できるようになりました。ターミナルを1枚占有せずに済むため、他の作業と並行しやすくなります。

# バックグラウンドで起動
astro dev --background

# 状態を確認
astro dev status

# ログを見る(--follow で追従)
astro dev logs --follow

# 停止
astro dev stop

通常起動との違いは次のとおりです。

通常起動は実行したターミナルを占有しCtrl+Cで停止するのに対し、バックグラウンド起動はプロセスとして常駐してターミナルが空き、status・logs・stopの各コマンドで操作することを左右に並べて示した図

覚えておきたいCLIコマンド

日常的に使うのは次のあたりです。

コマンド用途
astro dev開発サーバーを起動する
astro build本番用にサイトをビルドする
astro previewビルド結果をローカルで確認する
astro check型チェックなどの診断を実行する
astro syncastro:content などの型定義を生成する
astro add <name>インテグレーションを追加し、設定ファイルも更新する
astro info実行環境の情報を表示する
astro docs公式ドキュメントを開く

package.jsonscripts に登録されているため、通常は npm run devnpm run build の形で呼び出します。

astro check は、.astro ファイル内の型エラーやコンテンツコレクションのスキーマ違反を検出してくれます。ビルド前に実行する習慣をつけておくと、デプロイしてから気づく不具合を減らせます。

設定ファイルの最小構成

astro.config.mjs(TypeScriptなら astro.config.ts)は、次のような形をしています。

import { defineConfig } from "astro/config";

export default defineConfig({
  site: "https://example.com",
});

defineConfig で包むことで、エディタの補完と型チェックが効くようになります。設定項目は多岐にわたりますが、最初のうちは site(公開URL)だけ埋めておけば十分です。主要なオプションは12. Astroのビルドとデプロイで扱います。

要点

参考資料


シリーズ目次前章: 01. Astroとは何か:コンテンツ中心という選択次章: 03. .astroコンポーネントの基本


Share this post:

Previous Post
03. .astroコンポーネントの基本
Next Post
01. Astroとは何か:コンテンツ中心という選択