設定方法
次のリファレンスはAstroでサポートされているすべての設定項目をカバーしています。Astroの設定についてもっと知りたい場合は、Astroの設定の解説を確認してください。
トップレベルのオプション
セクションタイトル: トップレベルのオプションsite
セクションタイトル: siteデータ型: string
最終的にデプロイされるURLです。Astroはビルドの最後にサイトマップとcanonicalタグのURLを生成するためにこの完全なURLを使用します。Astroを最大限活用するためにこの値を設定することを強く推奨します。
base
セクションタイトル: baseデータ型: string
デプロイ先のベースパスです。Astroは、開発時と本番ビルドの両方で、このパスをページとアセットのルートとして使用します。
以下の例では、astro dev
コマンドは/docs
でサーバーを起動します。
このオプションを使用する場合、静的アセットのインポートとURLには、指定したベースをプレフィックスとして追加する必要があります。この値はimport.meta.env.BASE_URL
でアクセスできます。
import.meta.env.BASE_URL
の値は、base
にどのような値を設定するかに関わらず、trailingSlash
の設定で決定されます。
trailingSlash: "always"
が設定されている場合は、常に末尾にスラッシュが含まれます。trailingSlash: "never"
が設定されている場合は、base
にスラッシュが含まれていても、BASE_URL
には末尾のスラッシュが含まれません。
さらに、Astroはインテグレーションで利用可能にする前に、config.base
に設定された値を内部で操作します。インテグレーションで読み込まれるconfig.base
の値も、同様にtrailingSlash
設定によって決定されます。
以下の例では、import.meta.env.BASE_URL
とconfig.base
の値は、処理されるときにどちらも/docs
になります。
以下の例では、import.meta.env.BASE_URL
とconfig.base
の値は、処理されるときにどちらも/docs/
になります。
trailingSlash
セクションタイトル: trailingSlashデータ型: 'always' | 'never' | 'ignore'
デフォルト値: 'ignore'
開発サーバーのルーティングをマッチさせる動作の設定をします。次のオプションから選択してください。
'always'
- 末尾にスラッシュを含むURLにのみマッチします。(例: “/foo/“)'never'
- 末尾にスラッシュを含むURLにはマッチしない。(例: “/foo”)'ignore'
- URLの末尾に”/“があるかどうかに関係なくマッチします。
本番用ホストが末尾のスラッシュの有無を厳格に扱う場合に、この設定項目を使用してください。
開発中に末尾のスラッシュの有無によりURLが動作しないようにしたい場合にも、このオプションを設定できます。
以下も参照:
- build.format
redirects
セクションタイトル: redirectsデータ型: Record.<string, RedirectConfig>
デフォルト値: {}
astro@2.9.0
リダイレクトのマッピングを指定します。マッチするルートをキーに、リダイレクト先のパスを値にします。
動的ルートと静的ルートの両方をリダイレクトできますが、同じ種類のルートにのみリダイレクトできます。たとえば、'/article': '/blog/[...slug]'
のようなリダイレクトはできません。
アダプターをインストールせずに静的に生成されたサイトでは、<meta http-equiv="refresh">
タグによるクライアントリダイレクトを生成し、ステータスコードはサポートされません。
SSRの使用時か、output: static
モードで静的アダプターを使用している場合は、ステータスコードがサポートされます。AstroはリダイレクトされるGETリクエストにはステータスコード301
を、その他のリクエストメソッドにはステータスコード308
を使用します。
リダイレクトのステータスコードは、リダイレクトの設定でオブジェクトを使用してカスタマイズできます。
output
セクションタイトル: outputデータ型: 'static' | 'server' | 'hybrid'
デフォルト値: 'static'
ビルドの出力対象を指定します。
'static'
- 静的ホストにデプロイされる静的サイトをビルドします。'server'
- SSR (サーバーサイドレンダリング) をサポートするホストにデプロイされるアプリをビルドします。'hybrid'
- サーバーサイドレンダリングするページを一部含んだ静的サイトをビルドします。
以下も参照:
- adapter
adapter
セクションタイトル: adapterデータ型: AstroIntegration
ビルドアダプターにより、好みのサーバー、サーバーレス、エッジのホストにデプロイできます。NetlifyやVercelなどのファーストパーティーのアダプターをインポートし、AstroのSSRを活用しましょう。
SSRについて詳しくはサーバーサイドレンダリングのガイドを、ホストの完全な一覧はデプロイのガイドを確認してください。
以下も参照:
- output
integrations
セクションタイトル: integrationsType: AstroIntegration[]
カスタムインテグレーションでAstroを拡張します。インテグレーションは、Solid.jsなどのフレームワークのサポート、サイトマップなどの新しい機能、Partytownなど新しいライブラリの追加を一手に担います。
Astro のインテグレーションを使い始めるためにはインテグレーションガイドを確認してください。
root
セクションタイトル: rootデータ型: string
CLI: --root
デフォルト値: "."
(現在の作業ディレクトリ)
このオプションはプロジェクトルート以外のディレクトリでastro
のCLIコマンドを実行するときにのみ指定する必要があります。Astroは設定ファイルを見つける前にプロジェクトルートを知る必要があるため、通常このオプションは Astroの設定ファイルではなくCLI経由で指定されます。
--root: './my-project'
のように相対パスを渡した場合、Astroは現在の作業ディレクトリを起点として相対パスを解決します。
srcDir
セクションタイトル: srcDirデータ型: string
デフォルト値: "./src"
Astroがサイトを読み込むディレクトリを設定します。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
publicDir
セクションタイトル: publicDirデータ型: string
デフォルト値: "./public"
静的アセットを置くディレクトリを設定します。このディレクトリのファイルは開発環境では/
で配信され、ビルド時にはビルド用のディレクトリにコピーされます。これらのファイルは変換、バンドルされることはなく、常にそのままの状態で配信、コピーされます。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
outDir
セクションタイトル: outDirデータ型: string
デフォルト値: "./dist"
astro build
コマンドがビルドの最終成果物を出力するディレクトリを設定します。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
以下も参照:
- build.server
cacheDir
セクションタイトル: cacheDirデータ型: string
デフォルト値: "./node_modules/.astro"
ビルド成果物をキャッシュするディレクトリを設定します。このディレクトリのファイルは、ビルド時間を短縮するために以降のビルドで使用されます。
ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。
compressHTML
セクションタイトル: compressHTMLデータ型: boolean
デフォルト値: true
HTML出力をミニファイし、HTMLファイルのサイズを小さくするためのオプションです。デフォルトでは、Astroは.astro
コンポーネントのHTMLから改行を含む空白を削除します。これは開発モードと最終ビルドの両方で発生します。HTMLの圧縮を無効にするには、compressHTML
フラグをfalse
に設定します。
scopedStyleStrategy
セクションタイトル: scopedStyleStrategyデータ型: 'where' | 'class' | 'attribute'
デフォルト値: 'attribute'
astro@2.4
Astroコンポーネント内のスタイルをスコープするための戦略を指定します。次のオプションから選択してください。
'where'
-:where
セレクターを使用し、詳細度(specificity)は増加しません。'class'
- クラスベースのセレクターを使用し、詳細度は1だけ増加します。'attribute'
-data-
属性を使用し、詳細度は増加しません。
'class'
を使用すると、Astroコンポーネント内の要素セレクターが(たとえばグローバルスタイルシートの)グローバルスタイルのデフォルトを上書きすることを保証できます。'where'
を使用すると、詳細度をより細かく制御できますが、より高い詳細度のセレクター、レイヤー、その他のツールを使用して、適用されるセレクターを制御する必要があります。'attribute'
を使用すると、要素のclass
属性を操作し、自分のスタイルロジックとAstroの適用するスタイルとの間の競合を回避する必要がある場合に便利です。
vite
セクションタイトル: viteType: ViteUserConfig
Viteに追加の設定項目を渡します。Astroがサポートしていない高度な設定が必要になった場合に有用です。
vite
に設定するオブジェクトの完全なドキュメントはvitejs.devを確認してください。
ビルドのオプション
セクションタイトル: ビルドのオプションbuild.format
セクションタイトル: build.formatデータ型: ('file' | 'directory' | 'preserve')
デフォルト値: 'directory'
各ページの出力ファイルの形式を制御します。この値はアダプターによって設定されることがあります。
'file'
: Astroは”/foo.html”のように、各ページに対応するHTMLファイルを生成します。'directory': Astroは"/foo/index.html"のように、ディレクトリを生成しページに対応する
index.html`ファイルをネストします。'preserve'
: Astroは、ソースフォルダに表示される通りにHTMLファイルを生成します。(例:src/pages/about.astro
が/about.html
を作成し、src/pages/about/index.astro
がファイル/about/index.html
を作成します。)
Astro.urlへの影響
セクションタイトル: 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
セクションタイトル: build.clientデータ型: string
デフォルト値: './dist/client'
output: 'server'
またはoutput: 'hybrid'
の場合にのみ、クライアントサイドのCSSとJavaScriptの出力ディレクトリを制御します。outDir
はコードがビルドされる場所を制御します。
outDir
に対する相対パスを指定します。
build.server
セクションタイトル: build.serverデータ型: string
デフォルト値: './dist/server'
SSRのビルド時にサーバーJavaScriptの出力ディレクトリを制御します。
outDir
に対する相対パスを指定します。
build.assets
セクションタイトル: build.assetsデータ型: string
デフォルト値: '_astro'
astro@2.0.0
バンドルされたJSやCSSなどのAstroが生成したアセットが、ビルド出力先のどのディレクトリに配置されるかを指定します。
以下も参照:
- outDir
build.assetsPrefix
セクションタイトル: 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
セクションタイトル: build.serverEntryデータ型: string
デフォルト値: 'entry.mjs'
SSRのビルド時のサーバーエントリーポイントのファイル名を指定します。このエントリーポイントは、デプロイ先のホストに通常依存し、アダプターが自動的に設定します。
ランタイムがファイルをJavaScriptモジュールとして認識できるように、このファイルの拡張子は.mjs
とすることをおすすめします。
build.redirects
セクションタイトル: build.redirectsデータ型: boolean
デフォルト値: true
astro@2.6.0
リダイレクトがビルド時にHTMLに出力されるかどうかを指定します。このオプションはoutput: 'static'
モードでのみ適用されます。SSRでは、リダイレクトは他のレスポンスと同じように扱われます。
このオプションは、リダイレクト用の特別な設定ファイルをもち、HTMLベースのリダイレクトを必要としない・望まないアダプターによって使用されることを想定しています。
build.inlineStylesheets
セクションタイトル: build.inlineStylesheetsデータ型: 'always' | 'auto' | 'never'
デフォルト値: auto
astro@2.6.0
プロジェクトのスタイルがcssファイルとしてブラウザに送信されるか、<style>
タグとしてインラインで送信されるかを制御します。次のオプションから選択します。
'always'
- プロジェクトのスタイルは<style>
タグにインライン化されます。'auto'
-ViteConfig.build.assetsInlineLimit
(デフォルト: 4kb)より小さいスタイルシートのみがインライン化されます。それ以外の場合、プロジェクトのスタイルは外部のスタイルシートとして送信されます。'never'
- プロジェクトのスタイルは外部のスタイルシートとして送信されます。
サーバーのオプション
セクションタイトル: サーバーのオプションastro dev
とastro preview
の両方で使用される、Astroの開発サーバーをカスタマイズします。
実行するコマンド(“dev”、“preview”)に応じて設定を変えるために、この設定項目に関数を渡すこともできます。
server.host
セクションタイトル: server.hostデータ型: string | boolean
デフォルト値: false
astro@0.24.0
localhost以外のIPなど、サーバーがリッスンするネットワークIPアドレスを設定します。
false
- ネットワークIPアドレスを公開しません。true
- LANやパブリックなアドレスを含むすべてのアドレスでリッスンします。[カスタムアドレス]
-192.168.0.1
などの[カスタムアドレス]
のネットワークIPアドレスを公開します。
server.port
セクションタイトル: server.portデータ型: number
デフォルト値: 4321
サーバーがリッスンするポートを設定します。
設定したポートが使用されていた場合、Astroは自動的に利用可能な次のポート番号を使用しようと試みます。
server.open
セクションタイトル: server.openデータ型: string | boolean
デフォルト値: false
astro@4.1.0
開発サーバーが起動時にブラウザウィンドウを開くかどうかを制御します。
開くURLを指定するには、URL文字列全体(例: ”http://example.com” )、またはパス名(例: “/about”)を渡します。
server.headers
セクションタイトル: server.headersデータ型: OutgoingHttpHeaders
デフォルト値: {}
astro@1.7.0
astro dev
とastro preview
で送信されるカスタムHTTPレスポンスヘッダーを設定します。
開発ツールバーのオプション
セクションタイトル: 開発ツールバーのオプションdevToolbar.enabled
セクションタイトル: devToolbar.enabledデータ型: boolean
デフォルト値: true
Astroの開発ツールバーを有効化するかどうか。このツールバーを使うと、ページのアイランドを調査したり、パフォーマンスやアクセシビリティの便利な監査をしたりできるようになります。
このオプションのスコープはプロジェクト全体です。自分の環境でのみツールバーを無効化するには、npm run astro preferences disable devToolbar
を実行します。すべてのAstroプロジェクトでツールバーを無効化するには、npm run astro preferences disable devToolbar --global
を実行してください。
prefetchのオプション
セクションタイトル: prefetchのオプションデータ型: boolean | object
高速なページ遷移を提供するために、サイト上のリンクに対してプリフェッチを有効にします。(<ViewTransitions />
を使用しているページではデフォルトで有効化されます。この動作からオプトアウトするにはprefetch: false
を設定してください。)
この設定は自動的にプロジェクト内のすべてのページにプリフェッチスクリプトを追加し、data-astro-prefetch
属性を利用できるようにします。ページ上の任意の<a />
リンクにこの属性を追加すると、そのページのプリフェッチが有効になります。
デフォルトのプリフェッチ動作をさらにカスタマイズするには、prefetch.defaultStrategy
とprefetch.prefetchAll
オプションを使用します。
より詳しい情報については、プリフェッチのガイドを参照してください。
prefetch.prefetchAll
セクションタイトル: prefetch.prefetchAllデータ型: boolean
data-astro-prefetch
属性のないリンクも含めて、すべてのリンクに対してプリフェッチを有効にします。<ViewTransitions />
ルーターを使用している場合は、この値はデフォルトでtrue
になります。そうでない場合は、デフォルト値はfalse
です。
true
に設定した場合には、任意の個別のリンク上にdata-astro-prefetch="false"
を設定することで、プリフェッチを個別に無効化できます。
prefetch.defaultStrategy
セクションタイトル: prefetch.defaultStrategyデータ型: 'tap' | 'hover' | 'viewport' | 'load'
デフォルト値: 'hover'
data-astro-prefetch
属性が値無しでリンク上に設定されたときの、デフォルトのプリフェッチ戦略です。
'tap'
: リンクをクリックする直前にプリフェッチします。'hover'
: リンク上にホバーまたはフォーカスしたときにプリフェッチします。(デフォルト)'viewport'
: リンクがビューポートに入ったときにプリフェッチします。'load'
: ページのロード後に、ページ上のすべてのリンクをプリフェッチします。
属性の値を設定することで、個別のリンクに対して、このデフォルト値を上書きして異なる戦略を選択できます。
画像のオプション
セクションタイトル: 画像のオプションimage.endpoint
セクションタイトル: image.endpointデータ型: string
デフォルト値: undefined
astro@3.1.0
画像最適化に使用するエンドポイントを設定します。undefined
を設定すると、デフォルトのエンドポイントが使用されます。
エンドポイントは常に/_image
に挿入されます。
image.service
セクションタイトル: image.serviceデータ型: Object
デフォルト値: {entrypoint: 'astro/assets/services/sharp', config?: {}}
astro@2.1.0
どの画像サービスをAstroのアセットサポートで使用するかを設定します。
画像サービスが使用するエントリーポイントを含むオブジェクトを指定する必要があります。オプションで、サービスに渡す設定用オブジェクトを含めることもできます。
サービスのエントリーポイントは、組み込みのサービスかサードパーティのパッケージのどちらかを指定できます。
image.service.config.limitInputPixels
セクションタイトル: image.service.config.limitInputPixelsデータ型: number | boolean
デフォルト値: true
astro@4.1.0
Sharp画像サービスが処理する画像サイズを制限するかどうかを指定します。
false
に設定すると、Sharp画像サービスのデフォルトの画像サイズ制限をバイパスして、大きな画像を処理します。
image.domains
セクションタイトル: image.domainsデータ型: Array.<string>
デフォルト値: {domains: []}
astro@2.10.10
リモート画像の最適化を許可する画像ソースドメインのリストを定義します。Astroは、その他のリモート画像を最適化しません。
このオプションにはドメイン名の文字列の配列を指定します。ワイルドカードは許可されません。許可されたソースURLパターンのリストを定義するにはimage.remotePatterns
を使用してください。
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.shikiConfig
セクションタイトル: markdown.shikiConfigデータ型: Partial<ShikiConfig>
Shiki の設定項目です。使い方はマークダウンの設定のドキュメントを確認してください。
markdown.syntaxHighlight
セクションタイトル: markdown.syntaxHighlightデータ型: 'shiki' | 'prism' | false
デフォルト値: shiki
使用するシンタックスハイライトを設定します。
markdown.remarkPlugins
セクションタイトル: markdown.remarkPluginsデータ型: RemarkPlugins
マークダウンのビルドの仕方をカスタマイズするためにRemarkのプラグインを渡します。プラグインの関数をインポートして適用する(推奨)か、プラグインの名前を文字列として渡します。
markdown.rehypePlugins
セクションタイトル: markdown.rehypePluginsデータ型: RehypePlugins
マークダウンのビルドの仕方をカスタマイズするためにRehypeのプラグインを渡します。プラグインの関数をインポートして適用する(推奨)か、プラグインの名前を文字列として渡します。
markdown.gfm
セクションタイトル: markdown.gfmデータ型: boolean
デフォルト値: true
astro@2.0.0
AstroはGitHub風のマークダウンをデフォルトで使用します。これを無効にするには、gfm
フラグをfalse
に設定します。
markdown.smartypants
セクションタイトル: markdown.smartypantsデータ型: boolean
デフォルト値: true
astro@2.0.0
AstroはSmartyPantsのフォーマッターをデフォルトで使用します。これを無効にするには、smartypants
フラグをfalse
に設定します。
markdown.remarkRehype
セクションタイトル: markdown.remarkRehypeデータ型: RemarkRehype
remark-rehypeにオプションを渡します。
i18n
セクションタイトル: i18nデータ型: object
astro@3.5.0
i18nルーティングを設定し、カスタマイズオプションを指定できるようにします。
より詳しい情報については、ガイドAstroにおける国際化を参照してください。
i18n.defaultLocale
セクションタイトル: i18n.defaultLocaleデータ型: string
astro@3.5.0
ウェブサイト/アプリケーションのデフォルトのロケールです。これは必須のフィールドです。
特定の言語のフォーマットや構文が強制されることはありませんが、互換性を最大化するために、必要に応じて小文字とハイフン(例: “es”、“pt-br”)を使用することを推奨します。
i18n.locales
セクションタイトル: i18n.localesデータ型: Locales
astro@3.5.0
defaultLocale
も含む、ウェブサイトがサポートするすべてのロケールのリストです。これは必須のフィールドです。
言語は、個別のコードとしてリストすることも(例: ['en', 'es', 'pt-br']
)、codesの共有のpath
へのマッピングとしてリストすることもできます(例: { path: "english", codes: ["en", "en-US"]}
)。これらのcodesはデプロイされるサイトのURL構造を決定するために使われます。
特定の言語のフォーマットや構文が強制されることはありませんが、フォルダ構造はリスト内のロケールに完全に一致しなければいけません。複数のcodes
がカスタムURLのパスプリフィックスを指す場合には、設定されたpath
と同じ名前のフォルダにコンテンツを保存してください。
i18n.fallback
セクションタイトル: i18n.fallbackデータ型: Record.<string, string>
astro@3.5.0
存在しないページへナビゲーションしたときのフォールバック戦略です(例: 翻訳ページがまだ作成されていない場合)。
このオブジェクトを使用して、サポートしている各言語に対するフォールバックlocale
ルートを宣言してください。フォールバックが指定されなかった場合、利用できないページは404を返します。
以下の例では、コンテンツのフォールバック戦略を、/pt-br/
で利用できないページから対応するes
バージョンにリダイレクトするように、また、/fr/
で利用できないページから対応するen
バージョンにリダイレクトするように設定しています。/es/
で利用できないページは、404を返します。
i18n.routing
セクションタイトル: i18n.routingデータ型: Routing
astro@3.7.0
サイトのURLを決定するためのルーティング戦略を制御します。デフォルト言語のフォルダ/URLのパス設定を元に設定してください。
i18n.routing.prefixDefaultLocale
セクションタイトル: i18n.routing.prefixDefaultLocaleデータ型: boolean
デフォルト値: false
astro@3.7.0
false
の場合、デフォルト以外の言語でのみ言語プリフィックスが表示されます。defaultLocale
では、言語プリフィックスとローカライズされたフォルダに存在しないコンテンツファイルは表示されません。URLの形式は、デフォルト以外のすべての言語ではexample.com/[lang]/content/
になりますが、デフォルトのロケールではexample.com/content/
になります。
true
の場合、すべてのURLに言語プリフィックスが表示されます。URLの形式は、デフォルト言語も含めて、すべてのルーティングでexample.com/[lang]/content/
になります。ローカライズされたフォルダが、デフォルト言語も含めてすべての言語で使用されます。
i18n.routing.redirectToDefaultLocale
セクションタイトル: i18n.routing.redirectToDefaultLocaleデータ型: boolean
デフォルト値: true
astro@4.2.0
prefixDefaultLocale: true
が設定されている場合に、src/pages/index.astro
から生成されたホームURL(/
)を/[defaultLocale]
にリダイレクトするかどうかを設定します。
redirectToDefaultLocale: false
を設定すると、サイトのルート上でこの自動リダイレクトを無効化します。
レガシーなフラグ
セクションタイトル: レガシーなフラグAstroのバージョン間の移行を支援するために、legacy
フラグを導入することがあります。これらのフラグを使用すると、最新バージョンのAstroでも非推奨または古い動作を有効化できるため、Astroの新しいリリースにアップグレードして引き続き利用できます。
実験的なフラグ
セクションタイトル: 実験的なフラグAstroは、ユーザーが新しい機能に早期にアクセスできるように、実験的なフラグを提供しています。これらのフラグは安定しているとは限りません。
experimental.optimizeHoistedScript
セクションタイトル: experimental.optimizeHoistedScriptデータ型: boolean
デフォルト値: false
astro@2.10.4
使用されていないコンポーネントのスクリプトが予期せずページに含まれるのを防ぎます。この最適化はベストエフォートであり、逆に使用されているスクリプトが含まれなくなる可能性もあります。ページを公開する前にビルドされた内容をしっかり確認してください。巻き上げられた(hoisted)スクリプトの解析の最適化を有効にするには、以下の実験的なフラグを追加します。
experimental.contentCollectionCache
セクションタイトル: experimental.contentCollectionCacheデータ型: boolean
デフォルト値: false
astro@3.5.0
静的モードでビルドするときに、コンテンツコレクションに対して永続キャッシュを有効にします。
experimental.clientPrerender
セクションタイトル: experimental.clientPrerenderデータ型: boolean
デフォルト値: false
astro@4.2.0
対応ブラウザで、設定されたページのクライアント上でのプリレンダリングを有効化します。
この機能は、実験的なSpeculation Rules Web APIを使用しており、デフォルトのprefetch
の動作を、クライアント上でリンクをプリレンダリンクするようにグローバルで上書きします。この機能を有効にする前に、クライアント上でのプリレンダリングを行うときの潜在的なリスクを確認することをおすすめします。
以下は、astro.config.mjs
で、好きなprefetch
設定オプションとともにクライアントサイドのプリレンダリングを有効にする例です。
サイト上の任意の<a />
リンク上でdata-astro-prefetch
属性を使うことで、引き続きプリフェッチにオプトインできます。<link>
タグをドキュメントの先頭に追加したり、ページをJavaScriptでフェッチする代わりに、対応するspeculation ruleを持つ<script>
タグが追加されます。
クライアントサイドのプリレンダリングにはブラウザの対応が必要です。Speculation Rules APIがサポートされていない場合は、prefetch
は対応している戦略にフォールバックします。
より詳しいprefetch
のオプションや使用方法については、プリフェッチのガイドを参照してください。
experimental.globalRoutePriority
セクションタイトル: experimental.globalRoutePriorityデータ型: boolean
デフォルト値: false
astro@4.2.0
すべてのルーティングに対して、同じルーティング優先順位ルールに従い、リダイレクトと挿入されたルーティングをファイルベースのプロジェクトルーティングと同等に優先順位付けします。
これにより、特定の種類のルーティングを自動的に優先せずに、プロジェクト内のルーティングをより制御できるようになり、すべてのルーティングに対してルーティングの優先順位付けを標準化できます。
以下の例は、ファイルベースのルーティング、挿入されたルーティング、リダイレクトが次のように組み合わされた場合に、どのルートが特定のページのURLをビルドするかを示しています。
- ファイルベースのルーティング:
/blog/post/[pid]
- ファイルベースのルーティング:
/[page]
- 挿入されたルーティング:
/blog/[...slug]
- リダイレクト:
/blog/tags/[tag]
->/[tag]
- リダイレクト:
/posts
->/blog
experimental.globalRoutingPriority
を有効化すると、(Astro 4.0のデフォルトのルーティング優先順位の代わりに)次のようになります。
- (挿入されたルーティング
/blog/[...slug]
の代わりに)/tags/[tag]
へのリダイレクトにより、/blog/tags/astro
がビルドされる - (挿入されたルーティング
/blog/[...slug]
の代わりに)ファイルベースのルーティング/blog/post/[pid]
により、/blog/post/0
がビルドされる - (ファイルベースのルーティング
/[page]
の代わりに)/blog
へのリダイレクトにより、/posts
がビルドされる
ルーティングの優先度が等しい2つのルーティングが同じURLのビルドを試みる、ルーティング衝突が発生した場合は、Astroは競合するルーティングを特定できる警告をログ出力します。
experimental.i18nDomains
セクションタイトル: experimental.i18nDomainsデータ型: boolean
デフォルト値: false
astro@4.3.0
実験的なdomains
ルーティング戦略のためのドメインサポートを有効化します。これにより、1つ以上の対応言語のURLパターンを、カスタムドメイン(またはサブドメイン)を使用するように設定できます。
ロケールがドメインにマッピングされるとき、/[locale]/
パスプレフィックスは使用されません。ただし、src/pages/
内のローカライズされたフォルダは、設定されたdefaultLocale
を含めて依然として必要になります。
設定されなかった他のすべてのロケールは、prefixDefaultLocale
戦略にしたがって、デフォルトでローカライズされたパスベースのURLになります(例: https://example.com/[locale]/blog
)。
作成されたページルートと、astro:i18n
のヘルパー関数getAbsoluteLocaleUrl()
およびgetAbsoluteLocaleUrlList()
から返されたURLは、ともにi18n.domains
に設定されたオプションを使用します。
この実験的機能の制限を含む詳しい情報については、国際化ガイドを参照してください。
Reference