設定方法
次のリファレンスはAstroでサポートされているすべての設定項目をカバーしています。Astroの設定についてもっと知りたい場合は、Astroの設定の解説を確認してください。
トップレベルのオプション
root
データ型: string
CLI: --root
デフォルト値: "."
(現在の作業ディレクトリ)
このオプションはプロジェクトルート以外のディレクトリでastro
のCLIコマンドを実行するときにのみ指定する必要があります。Astroは設定ファイルを見つける前にプロジェクトルートを知る必要があるため、通常このオプションは Astroの設定ファイルではなくCLI経由で指定されます。
--root: './my-project'
のように相対パスを渡した場合、Astroは現在の作業ディレクトリを起点として相対パスを解決します。
例
srcDir
データ型: string
デフォルト値: "./src"
Astroがサイトを読み込むディレクトリを設定します。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
publicDir
データ型: string
デフォルト値: "./public"
静的アセットを置くディレクトリを設定します。このディレクトリのファイルは開発環境では/
で配信され、ビルド時にはビルド用のディレクトリにコピーされます。これらのファイルは変換、バンドルされることはなく、常にそのままの状態で配信、コピーされます。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
outDir
データ型: string
デフォルト値: "./dist"
astro build
コマンドがビルドの最終成果物を出力するディレクトリを設定します。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
cacheDir
データ型: string
デフォルト値: "./node_modules/.astro"
ビルド成果物をキャッシュするディレクトリを設定します。このディレクトリのファイルは、ビルド時間を短縮するために以降のビルドで使用されます。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
redirects
データ型: Record.<string, RedirectConfig>
デフォルト値: {}
astro@2.9.0
リダイレクトのマッピングを指定します。マッチするルートをキーに、リダイレクト先のパスを値にします。
動的ルートと静的ルートの両方をリダイレクトできますが、同じ種類のルートにのみリダイレクトできます。たとえば、'/article': '/blog/[...slug]'
のようなリダイレクトはできません。
アダプターをインストールせずに静的に生成されたサイトでは、<meta http-equiv="refresh">
タグによるクライアントリダイレクトを生成し、ステータスコードはサポートされません。
SSRの使用時か、output: static
モードで静的アダプターを使用している場合は、ステータスコードがサポートされます。AstroはリダイレクトされるGETリクエストにはステータスコード301
を、その他のリクエストメソッドにはステータスコード308
を使用します。
リダイレクトのステータスコードは、リダイレクトの設定でオブジェクトを使用してカスタマイズできます。
site
データ型: string
最終的にデプロイされるURLです。Astroはビルドの最後にサイトマップとcanonicalタグのURLを生成するためにこの完全なURLを使用します。Astroを最大限活用するためにこの値を設定することを強く推奨します。
compressHTML
データ型: boolean
デフォルト値: true
HTML出力をミニファイし、HTMLファイルのサイズを小さくするためのオプションです。デフォルトでは、Astroは.astro
コンポーネントのHTMLから改行を含む空白を削除します。これは開発モードと最終ビルドの両方で発生します。HTMLの圧縮を無効にするには、compressHTML
フラグをfalse
に設定します。
base
データ型: string
デプロイ先のベースパスです。Astroは、開発時と本番ビルドの両方で、このパスをページとアセットのルートとして使用します。
以下の例では、astro dev
コマンドは/docs
でサーバーを起動します。
このオプションを使用する場合、静的アセットのインポートとURLには、指定したベースをプレフィックスとして追加する必要があります。この値はimport.meta.env.BASE_URL
でアクセスできます。
import.meta.env.BASE_URL
の値は、trailingSlash
の設定に従います。明示的にスラッシュを含めるか、trailingSlash: "always"
が設定されている場合は、末尾にスラッシュが含まれます。trailingSlash: "never"
が設定されている場合は、base
にスラッシュが含まれていても、BASE_URL
には末尾のスラッシュが含まれません。
trailingSlash
データ型: 'always' | 'never' | 'ignore'
デフォルト値: 'ignore'
開発サーバーのルーティングをマッチさせる動作の設定をします。次のオプションから選択してください。
'always'
- 末尾にスラッシュを含むURLにのみマッチします。(例: “/foo/“)'never'
- 末尾にスラッシュを含むURLにはマッチしない。(例: “/foo”)'ignore'
- URLの末尾に”/“があるかどうかに関係なくマッチします。
本番用ホストが末尾のスラッシュの有無を厳格に扱う場合に、この設定項目を使用してください。
開発中に末尾のスラッシュの有無によりURLが動作しないようにしたい場合にも、このオプションを設定できます。
以下も参照:
- buildOptions.pageUrlFormat
scopedStyleStrategy
データ型: 'where' | 'class' | 'attribute'
デフォルト値: 'attribute'
astro@2.4
Astroコンポーネント内のスタイルをスコープするための戦略を指定します。次のオプションから選択してください。
'where'
-:where
セレクターを使用し、詳細度(specificity)は増加しません。'class'
- クラスベースのセレクターを使用し、詳細度は1だけ増加します。'attribute'
-data-
属性を使用し、詳細度は増加しません。
'class'
を使用すると、Astroコンポーネント内の要素セレクターが(たとえばグローバルスタイルシートの)グローバルスタイルのデフォルトを上書きすることを保証できます。'where'
を使用すると、詳細度をより細かく制御できますが、より高い詳細度のセレクター、レイヤー、その他のツールを使用して、適用されるセレクターを制御する必要があります。'attribute'
を使用すると、要素のclass
属性を操作し、自分のスタイルロジックとAstroの適用するスタイルとの間の競合を回避する必要がある場合に便利です。
adapter
データ型: AstroIntegration
ビルドアダプターにより、好みのサーバー、サーバーレス、エッジのホストにデプロイできます。NetlifyやVercelなどのファーストパーティーのアダプターをインポートし、AstroのSSRを活用しましょう。
SSRについて詳しくはサーバーサイドレンダリングのガイドを、ホストの完全な一覧はデプロイのガイドを確認してください。
以下も参照:
- output
output
データ型: 'static' | 'server' | 'hybrid'
デフォルト値: 'static'
ビルドの出力対象を指定します。
'static'
- 静的ホストにデプロイするための静的サイトをビルドします。'server'
- SSR (サーバーサイドレンダリング) をサポートするホストにデプロイするためのアプリをビルドします。'hybrid'
- サーバーサイドレンダリングするページを一部含んだ静的サイトをビルドします。
以下も参照:
- adapter
ビルドのオプション
build.format
データ型: ('file' | 'directory')
デフォルト値: 'directory'
各ページの出力ファイルの形式を制御します。
'file'
が指定された場合、Astroは”/foo.html”のように、各ページに対応するHTMLファイルを生成します。'directory'
が指定された場合、Astroは”/foo/index.html”のように、ディレクトリを生成しページに対応するindex.html
ファイルをネストします。
Astro.urlへの影響
build.format
の値によって、ビルド時にAstro.url
に設定される値が変わります。
directory
の場合 -Astro.url.pathname
は、フォルダの挙動を模倣するために、/foo/
のように末尾にスラッシュを含みます。file
の場合 -Astro.url.pathname
は、/foo.html
のように.html
を含みます。
これにより、new URL('./relative', Astro.url)
を使用して相対URLを作成すると、開発時とビルド時で一貫した動作となります。
開発時の末尾のスラッシュの挙動を一貫させるために、ビルドフォーマットに応じてtrailingSlash
オプションを'always'
または'never'
に制限できます。
directory
の場合 -trailingSlash: 'always'
を設定するfile
の場合 -trailingSlash: 'never'
を設定する
build.client
データ型: string
デフォルト値: './dist/client'
output: 'server'
またはoutput: 'hybrid'
の場合にのみ、クライアントサイドのCSSとJavaScriptの出力ディレクトリを制御します。outDir
はコードがビルドされる場所を制御します。
outDir
に対する相対パスを指定します。
build.server
データ型: string
デフォルト値: './dist/server'
SSRのビルド時にサーバーJavaScriptの出力ディレクトリを制御します。
outDir
に対する相対パスを指定します。
build.assets
データ型: string
デフォルト値: '_astro'
astro@2.0.0
バンドルされたJSやCSSなどのAstroが生成したアセットが、ビルド出力先のどのディレクトリに配置されるかを指定します。
以下も参照:
- outDir
build.assetsPrefix
データ型: string
デフォルト値: undefined
astro@2.2.0
Astroが生成したアセットへのリンクのプレフィックスを指定します。アセットが現在のサイトとは異なるドメインから提供されている場合に使用できます。
たとえばこの値をhttps://cdn.example.com
に設定すると、アセットは(base
オプションに関係なく)https://cdn.example.com/_astro/...
から取得されます。アセットを配信するには、./dist/_astro/
のファイルをhttps://cdn.example.com/_astro/
にアップロードする必要があります。この手順はサードパーティのドメインがどのようにホストされているかによって異なります。_astro
パスの名前を変更するには、build.assets
に新しいディレクトリを指定します。
build.serverEntry
データ型: string
デフォルト値: 'entry.mjs'
SSRのビルド時のサーバーエントリーポイントのファイル名を指定します。このエントリーポイントは、デプロイ先のホストに通常依存し、アダプターが自動的に設定します。
ランタイムがファイルをJavaScriptモジュールとして認識できるように、このファイルの拡張子は.mjs
とすることをおすすめします。
build.redirects
データ型: boolean
デフォルト値: true
astro@2.6.0
リダイレクトがビルド時にHTMLに出力されるかどうかを指定します。このオプションはoutput: 'static'
モードでのみ適用されます。SSRでは、リダイレクトは他のレスポンスと同じように扱われます。
このオプションは、リダイレクト用の特別な設定ファイルをもち、HTMLベースのリダイレクトを必要としない・望まないアダプターによって使用されることを想定しています。
build.inlineStylesheets
データ型: 'always' | 'auto' | 'never'
デフォルト値: auto
astro@2.6.0
プロジェクトのスタイルがcssファイルとしてブラウザに送信されるか、<style>
タグとしてインラインで送信されるかを制御します。次のオプションから選択します。
'always'
- プロジェクトのスタイルは<style>
タグにインライン化されます。'auto'
-ViteConfig.build.assetsInlineLimit
(デフォルト: 4kb)より小さいスタイルシートのみがインライン化されます。それ以外の場合、プロジェクトのスタイルは外部のスタイルシートとして送信されます。'never'
- プロジェクトのスタイルは外部のスタイルシートとして送信されます。
build.split
バージョン3.0で非推奨となりました。
データ型: boolean
デフォルト値: false
ビルドの設定オプションbuild.split
は、アダプターの設定オプションfunctionPerRoute
(EN)に置き換えられました。
使用しているSSRアダプターのドキュメントを参照して、functionPerRoute
によりSSRコードをどのようにバンドルするかを定義してください。
build.excludeMiddleware
バージョン3.0で非推奨となりました。
データ型: boolean
デフォルト値: false
ビルドの設定オプションbuild.excludeMiddleware
は、アダプターの設定オプションedgeMiddleware
(EN)に置き換えられました。
使用しているSSRアダプターのドキュメントを参照して、edgeMiddleware
によりSSRのミドルウェアコードをビルド時にバンドルするかどうかを定義してください。
サーバーのオプション
astro dev
とastro preview
の両方で使用される、Astroの開発サーバーをカスタマイズします。
実行するコマンド(“dev”、“preview”)に応じて設定を変えるために、この設定項目に関数を渡すこともできます。
server.host
データ型: string | boolean
デフォルト値: false
astro@0.24.0
localhost以外のIPなど、サーバーがリッスンするネットワークIPアドレスを設定します。
false
- ネットワークIPアドレスを公開しません。true
- LANやパブリックなアドレスを含むすべてのアドレスでリッスンします。[カスタムアドレス]
-192.168.0.1
などの[カスタムアドレス]
のネットワークIPアドレスを公開します。
server.port
データ型: number
デフォルト値: 4321
サーバーがリッスンするポートを設定します。
設定したポートが使用されていた場合、Astroは自動的に利用可能な次のポート番号を使用しようと試みます。
server.headers
データ型: OutgoingHttpHeaders
デフォルト値: {}
astro@1.7.0
astro dev
とastro preview
で送信されるカスタムHTTPレスポンスヘッダーを設定します。
画像のオプション
image.endpoint
データ型: string
デフォルト値: undefined
astro@3.1.0
画像最適化に使用するエンドポイントを設定します。undefined
を設定すると、デフォルトのエンドポイントが使用されます。
エンドポイントは常に/_image
に挿入されます。
image.service
データ型: Object
デフォルト値: {entrypoint: 'astro/assets/services/sharp', config?: {}}
astro@2.1.0
どの画像サービスをAstroのアセットサポートで使用するかを設定します。
画像サービスが使用するエントリーポイントを含むオブジェクトを指定する必要があります。オプションで、サービスに渡す設定用オブジェクトを含めることもできます。
サービスのエントリーポイントは、組み込みのサービスかサードパーティのパッケージのどちらかを指定できます。
image.domains
データ型: Array.<string>
デフォルト値: {domains: []}
astro@2.10.10
リモート画像の最適化を許可する画像ソースドメインのリストを定義します。Astroは、その他のリモート画像を最適化しません。
このオプションにはドメイン名の文字列の配列を指定します。ワイルドカードは許可されません。許可されたソースURLパターンのリストを定義するにはimage.remotePatterns
を使用してください。
image.remotePatterns
データ型: Array.<RemotePattern>
デフォルト値: {remotePatterns: []}
astro@2.10.10
リモート画像の最適化を許可する画像ソースURLパターンのリストを定義します。
remotePatterns
は4つのプロパティで設定します。
- プロトコル(protocol)
- ホスト名(hostname)
- ポート(port)
- パス名(pathname)
以下のように、許可されたhostname
とpathname
の値を定義するためにワイルドカードを使用できます。それ以外の場合、指定された値のみがそのまま設定されます。
hostname
:
- すべてのサブドメインを許可するには、’**.’で始めます(‘endsWith’を使う)。
- 1つの階層のサブドメインのみを許可するには、’*.’で始めます。
pathname
:
- すべてのサブルートを許可するには、’/**‘で終わります(‘startsWith’を使う)。
- 1つの階層のサブルートのみを許可するには、’/*‘で終わります。
マークダウンのオプション
markdown.drafts
バージョン3.0で非推奨となりました。コンテンツコレクションを使用してください。
データ型: boolean
デフォルト値: false
マークダウンのドラフトページがビルドに含まれるかを制御します。
マークダウンページがフロントマターにdraft: true
を含む場合、ドラフトとみなされます。ドラフトページは開発環境(astro dev
)では常に含まれ、閲覧できますが、デフォルトでは最終的なビルドに含まれません。
markdown.shikiConfig
データ型: Partial<ShikiConfig>
Shiki の設定項目です。使い方はマークダウンの設定のドキュメントを確認してください。
markdown.syntaxHighlight
データ型: 'shiki' | 'prism' | false
デフォルト値: shiki
使用するシンタックスハイライトを設定します。
markdown.remarkPlugins
データ型: RemarkPlugins
マークダウンのビルドの仕方をカスタマイズするためにRemarkのプラグインを渡します。プラグインの関数をインポートして適用する(推奨)か、プラグインの名前を文字列として渡します。
markdown.rehypePlugins
データ型: RehypePlugins
マークダウンのビルドの仕方をカスタマイズするためにRehypeのプラグインを渡します。プラグインの関数をインポートして適用する(推奨)か、プラグインの名前を文字列として渡します。
markdown.gfm
データ型: boolean
デフォルト値: true
astro@2.0.0
AstroはGitHub風のマークダウンをデフォルトで使用します。これを無効にするには、gfm
フラグをfalse
に設定します。
markdown.smartypants
データ型: boolean
デフォルト値: true
astro@2.0.0
AstroはSmartyPantsのフォーマッターをデフォルトで使用します。これを無効にするには、smartypants
フラグをfalse
に設定します。
markdown.remarkRehype
データ型: RemarkRehype
remark-rehypeにオプションを渡します。
インテグレーション
カスタムインテグレーションでAstroを拡張します。インテグレーションは、Solid.jsなどのフレームワークのサポート、サイトマップなどの新しい機能、PartytownやTurbolinksなど新しいライブラリの追加を一手に担います。
Astro のインテグレーションを使い始めるためにはインテグレーションガイドを確認してください。
Vite
Viteに追加の設定項目を渡します。Astroがサポートしていない高度な設定が必要になった場合に有用です。
vite
に設定するオブジェクトの完全なドキュメントはvitejs.devを確認してください。
例
レガシーなフラグ
Astroのバージョン間の移行を支援するために、legacy
フラグを導入することがあります。これらのフラグを使用すると、最新バージョンのAstroでも非推奨または古い動作を有効化できるため、Astroの新しいリリースにアップグレードして引き続き利用できます。
実験的なフラグ
Astroは、ユーザーが新しい機能に早期にアクセスできるように、実験的なフラグを提供しています。これらのフラグは安定しているとは限りません。
experimental.optimizeHoistedScript
データ型: boolean
デフォルト値: false
astro@2.10.4
使用されていないコンポーネントのスクリプトが予期せずページに含まれるのを防ぎます。この最適化はベストエフォートであり、逆に使用されているスクリプトが含まれなくなる可能性もあります。ページを公開する前にビルドされた内容をしっかり確認してください。巻き上げられた(hoisted)スクリプトの解析の最適化を有効にするには、以下の実験的なフラグを追加します。
Reference