Gatsby で特定のパスを含むページの作成を回避する方法はありますか?

okwaves2024-01-25  7

Gatsby は、.js ファイルと同じ名前のパスを使用して、ディレクトリ src/pages/ にページを自動的に構築することがわかっています。たとえば、ファイル src/pages/example.js があり、ターミナルでコマンド gatsby Development を実行すると、Web ページがサイト「localhost:8000/example」で利用可能になります。

しかし、パス「/example」を使用して Web ページを構築することは許可されていないとすると、パス「/example」をブラックリストに登録し、ブラックリストに登録されたパスを使用して構築しようとするたびに構築/開発プロセスを停止する方法はありますか?パスを入力し、ターミナルで「ブラックリスト パス: /example を使用してページを構築することはできません」のようなエラーを報告しますか?

さらに詳しい状況を説明するために、現在、Docusaurus で構築された Web サイトを URL「www.example-domain.com/example」で実行しています。ギャツビーにそうしてほしい「www.example-domain.com/example」にサイトを構築するときにエラーを報告し、開発者が example.js の名前を another-example などの別の名前に変更できるように、このパスがすでに使用されていることを開発者に伝えます。 js.

この質問に関するいくつかのアイデア: stackoverflow.com/questions/55519931/…

– ksav

2020 年 9 月 4 日 4:35



------------------------

あなたはおそらくこの目的には onCreatePage イベントを使用できます。

gatsby-node.js 内:

exports.onCreatePage = ({ page, actions, reporter }) => {
  
  // Page is an object which amongst other things contains the path
  if (page.path.match(/example/) {
    reporter.panic('Stop! in the name of love...')
  }
}

そこでのアクションに関して最善のアプローチが何かはわかりません。コンソールに出力すると、見逃される可能性があります。 process.exit(1) することも、場合によってはファイルの名前を変更することもできます。おそらく、正しい軌道に乗るにはこれで十分でしょう。

2

また、repoter.error() またはreporter.panic() を実行できるように、onCreatePage API でレポーター ヘルパーにアクセスできる必要があります。詳細についてはドキュメントを確認してください。

– Z.ズラテフ

2020 年 9 月 4 日午前 7 時 4 分

いいですね @Z.Zlatev - レポーターを追加するために回答を更新しました。

– サイバーウォンバット

2020 年 9 月 5 日午後 4 時 34 分

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。