Astro v2へのアップグレード
このガイドはAstro v1からAstro v2への移行へ役立ちます。
古いプロジェクトからv1へのアップグレードが必要ですか? 古い移行ガイド (EN)をご覧ください。
Astroをアップグレードする
セクションタイトル: Astroをアップグレードするパッケージマネージャを使用して、プロジェクトのAstroのバージョンを最新版に更新してください。Astroインテグレーションを使用している場合は、それらも最新バージョンにアップデートしてください。
Astro v2.0の互換性のない変更点
セクションタイトル: Astro v2.0の互換性のない変更点Astro v2.0では、いくつかの変更点があり、以前廃止された機能が削除されています。もしv2.0にアップグレードした後、プロジェクトが期待通りに動作しない場合、このガイドですべての変更点の概要とコードベースの更新方法を確認してください。
リリースノートの全文は変更履歴をご覧ください。
削除: Node 14のサポート
セクションタイトル: 削除: Node 14のサポートNode 14は2023年の4月に終了する予定です。
Astro v2.0では、Node 14のサポートを完全に停止し、すべてのAstroユーザーがNodeのよりモダンな機能を利用できるようにしました。
どうすればいいの?
セクションタイトル: どうすればいいの?開発環境とデプロイ環境の両方がNode 16.12.0
以降を使用していることを確認してください。
-
Nodeのローカルバージョンを確認します:
ローカル環境のアップグレードが必要な場合はNodeをインストールしてください。
-
デプロイ環境自身のドキュメントを確認し、Node 16をサポートしているかどうかを確認します。
AstroプロジェクトにNode
16.12.0
を指定するには、ダッシュボードの設定、または.nvmrc
ファイルのいずれかを使用します。
予約: src/content/
セクションタイトル: 予約: src/content/Astro v2.0では、MarkdownやMDXファイルをコンテンツコレクションに整理するためのCollections APIが追加されました。このAPIは、src/content/
を特別なフォルダとして予約します。
どうすればいいの?
セクションタイトル: どうすればいいの?src/content/
フォルダの名前を変更し、競合を回避します。このフォルダが存在する場合は、コンテンツコレクションにのみ使用することができるようになりました。
変更: Astro.site
末尾のスラッシュ
セクションタイトル: 変更: Astro.site末尾のスラッシュv1.x では、astro.config.mjs で site
として設定した URL に Astro.site
でアクセスすると、常に末尾にスラッシュが付くようにしました。
Astro v2.0では、site
の値が変更されなくなりました。Astro.site
は定義された正確な値を使用し、必要であれば末尾のスラッシュを指定する必要があります。
どうすればいいの?
セクションタイトル: どうすればいいの?astro.config.mjs
で、site
に設定したURLの末尾にスラッシュを追加します。
変更: ビルドアセット用の_astro/
フォルダー
セクションタイトル: 変更: ビルドアセット用の_astro/フォルダーv1.xでは、アセットはassets/
やchunks/
、ビルド出力のルートなど、様々な場所にビルドされていました。
Astro v2.0では、すべてのビルド出力アセットを新しい_astro/
フォルダに移動し、場所を統一しています。
ディレクトリdist/
ディレクトリ_astro
- client.9218e799.js
- index.df3f880e0.css
この場所は新しいbuild.assets
設定オプションで制御できます。
どうすればいいの?
セクションタイトル: どうすればいいの?これらの資産の場所に依存している場合、開発プラットフォームの設定を更新します。
変更: Markdownプラグインの設定
セクションタイトル: 変更: Markdownプラグインの設定削除: extendDefaultPlugins
セクションタイトル: 削除: extendDefaultPluginsv1.xでは、Astroは独自のMarkdownプラグインを追加する時に、Astroのデフォルトプラグインを再有効化するためにmarkdown.extendDefaultPlugins
を使用しました。
Astro v2.0ではこの動作がデフォルトとなったため、この設定オプションを完全に削除しています。
Markdownの設定でremarkとrehypeのプラグインを適用しても、Astroのデフォルトのプラグインを無効にしなくなりました。 GitHub-Flavored Markdown と Smartypants は、カスタムの remarkPlugins
や rehypePlugins
が設定されているかどうかにかかわらず適用されるようになりました。
どうすればいいの?
セクションタイトル: どうすればいいの?設定のextendDefaultPlugins
を削除してください。これはv2.0のAstroのデフォルトの動作になったので、この行を削除しても差し支えはありません。
追加: gfm
とsmartypants
セクションタイトル: 追加: gfmとsmartypantsv1.xでは、 markdown.extendDefaultPlugins: false
を設定することでAstroのデフォルトMarkdownプラグイン(GitHub-Flavored MarkdownとSmartyPants)の両方を無効化することができました。
Astro v2.0では、markdown.extendDefaultPlugins: false
を、Astroに内蔵されたデフォルトのMarkdownプラグインを個別に制御するブール値のオプションに置き換えました。これらはデフォルトで有効になっており、個別に false
に設定できます。
どうすればいいの?
セクションタイトル: どうすればいいの?extendDefaultPlugins: false
を削除し、その代わりに各プラグインを個別に無効化するフラグを追加しました。
markdown.gfm: false
GitHub-Flavored Markdownを無効化するmarkdown.smartypants: false
SmartyPantsを無効化する
変更: MDXプラグイン設定
セクションタイトル: 変更: MDXプラグイン設定置き換え: extendPlugins
がextendMarkdownConfig
へ変更されました。
セクションタイトル: 置き換え: extendPluginsがextendMarkdownConfigへ変更されました。v1.xでは、MDXインテグレーションのextendPlugins
オプションで、MDXファイルがMarkdownの設定をどのように継承するかを管理しました。Markdownの全設定(markdown
)、またはAstroのデフォルトプラグインのみ(default
)です。
Astro v2.0では、mdx.extendPlugins
で制御される動作を、デフォルトでtrue
になる3つの新しい独立した設定可能なオプションに置き換えています。
mdx.extendMarkdownConfig
(EN) を使えば、Markdownの設定のすべてまたは一部を引き継げます。mdx.gfm
でMDXのGitHub-Flavored Markdownの有効・無効化を設定します。mdx.smartypants
MDXのSmartyPantsの有効・無効化を設定します。
どうすればいいの?
セクションタイトル: どうすればいいの?extendPlugins: 'markdown'
を設定から削除してください。これで、デフォルトの動作になります。
extendPlugins: 'defaults'
をextendMarkdownConfig: false
に置き換え、GitHub-Flavored MarkdownとSmartyPantsの個別のオプションを追加し、これらのデフォルトプラグインをMDXで個別に有効化します。
追加: Markdownに対応したMDX設定オプションの追加
セクションタイトル: 追加: Markdownに対応したMDX設定オプションの追加Astro v2.0では、MDXインテグレーション設定において、利用可能なすべてのMarkdown設定オプション(drafts
を除く)を個別に設定できるようになりました。
どうすればいいの?
セクションタイトル: どうすればいいの?MarkdownとMDXの設定を再検討し、既存の設定と利用可能な新しいオプションを比較します。
変更: フロントマターへのプラグインアクセス
セクションタイトル: 変更: フロントマターへのプラグインアクセスv1.xでは、remarkとrehypeプラグインはユーザーのフロントマターにアクセスすることができませんでした。Astro はプラグインのフロントマターをファイルのフロントマターにマージし、ファイルのフロントマターをプラグインに渡さないようにしました。
Astro v2.0ではremarkとrehypeプラグインがフロントマターインジェクションを介してユーザーのフロントマターへのアクセスを提供します。これにより、プラグインの作者はユーザーの既存のフロントマターを変更したり、他のプロパティに基づいて新しいプロパティを計算したりすることができます。
どうすればいいの?
セクションタイトル: どうすればいいの?あなたが書いたremarkやrehypeプラグインの動作が変わったかどうか確認してください。data.astro.frontmatter
は空のオブジェクトではなく、完全なMarkdownまたはMDXドキュメントのフロントマターになったことに注意してください。
変更: RSSの構成
セクションタイトル: 変更: RSSの構成v1.xでは、AstroのRSSパッケージは、items: import.meta.glob(...)
を使って、RSSフィードアイテムのリストを生成することができました。この使い方は現在非推奨であり、いずれ削除される予定です。
Astro v2.0では、items
プロパティにpagesGlobToRssItems()
が導入されました。
どうすればいいの?
セクションタイトル: どうすればいいの?import.meta.glob()
を含む既存の関数をpagesGlobToRssItems()
ヘルパーでラップしてください。
変更: Svelte IDEのサポート
セクションタイトル: 変更: Svelte IDEのサポートAstro v2.0では、@astrojs/svelte
インテグレーション (EN)を使用する場合、プロジェクトにsvelte.config.js
ファイルが必要です。これはIDEの自動補完を提供するために必要です。
どうすればいいの?
セクションタイトル: どうすればいいの?プロジェクトのルートにsvelte.config.js
ファイルを追加します。
新規ユーザーの場合、astro add svelte
を実行すると、このファイルが自動的に追加されます。
削除: legacy.astroFlavoredMarkdown
セクションタイトル: 削除: legacy.astroFlavoredMarkdownv1.0では、Astroは古いastroFlavored Markdown(Components in Markdownとしても知られている)をレガシ機能へ移行しました。
Astro v2.0では、legacy.astroFlavoredMarkdown
オプションは完全に削除されました。.md
ファイル内のコンポーネントをインポートして使うことはできなくなります。
どうすればいいの?
セクションタイトル: どうすればいいの?このレガシーフラグを削除します。 Astroでは使用できなくなりました。
v1.x でこの機能を使用していた場合は、MDXインテグレーション (EN)を使用することをお勧めします。これにより、コンポーネントとJSX式をMarkdown構文で組み合わせることができます。
削除: Astro.resolve()
セクションタイトル: 削除: Astro.resolve()v0.24では、Astroは、ブラウザーで参照する可能性があるアセットへの解決済みURLを取得するための Astro.resolve()
を非推奨にしました。
Astro v2.0では、このオプションが完全に削除されています。あなたのコードでAstro.resolve()
を使用すると、エラーが発生します。
どうすればいいの?
セクションタイトル: どうすればいいの?アセットパスの解決は、代わりにimport
を使用します。例えば、次のようになります。
削除: Astro.fetchContent()
セクションタイトル: 削除: Astro.fetchContent()v0.26では、ローカルのMarkdownファイルからデータを取得するためのAstro.fetchContent()
を非推奨にしました。
Astro v2.0では、このオプションは完全に削除されています。あなたのコードでAstro.fetchContent()
を実行すると、エラーになります。
どうすればいいの?
セクションタイトル: どうすればいいの?Astro.glob()
を使ってローカルのMarkdownファイルを取得したり、コンテンツコレクションに変換したりできます。
更新: Astro.canonicalURL
セクションタイトル: 更新: Astro.canonicalURLv1.0 では、Astroは正規のURLを構築するためのAstro.canonicalURL
を非推奨にしました。
Astro v2.0では、このオプションは完全に削除されています。あなたのコードでAstro.canonicalURL
を実行すると、エラーになります。
どうすればいいの?
セクションタイトル: どうすればいいの?Astro.url
を使用して、正規のURLを構築します。
更新: Vite 4
セクションタイトル: 更新: Vite 4Astro v2.0は、2022年12月にリリースされたVite 3からVite 4にアップグレードします。
どうすればいいの?
セクションタイトル: どうすればいいの?コードの変更は必要ありません。Astro内部でほとんどのアップグレードに対応しました。ただし、Viteの微妙な動作はバージョンによって変化することがあります。
問題が発生した場合は、公式のVite移行ガイドを参照してください。
Astro v2.0 実験用フラグを削除しました。
セクションタイトル: Astro v2.0 実験用フラグを削除しました。astro.config.mjs
から以下の実験的フラグを削除します。
これらの機能は、デフォルトで利用できるようになりました。
- MarkdownやMDXのファイルを型安全で管理する方法として、コンテンツコレクションがあります。
- SSR使用時に個別ページ静的HTMLにプリレンダリング (EN)をし、高速化とキャッシュ性能の向上を図る。
- エラーメッセージのオーバーレイのデザインを変更しました。
既知の問題点
セクションタイトル: 既知の問題点現在、既知の問題はありません。
Upgrade Guides