2020-03-06

【Gatsby】.mdファイルを削除するとdevelopモードにいけなくなる話

.mdファイルを削除してしまうとビルドに失敗する。これはキャッシュが問題のようで解決策を見つけた。

Article Image

GraphQLエラーを解決する

テスト用記事(.mdファイル)を削除した。その後次のようなエラーでGatsby developが実行できなくなった。

ERROR #85922 GRAPHQL

There was an error in your GraphQL query:

Field "ここは人によって違う" must not have a selection since type "String" has no subfields.

This can happen if you e.

なぜこれだけでエラーになるのか。更にエラー内容からも状況が判断できず苦戦した。

英語のフォーラムをいくつか検索していたが、次の1行を実行すると良い書いてあったので試した。

gatsby clean

なんとあっさり動くようになった。たった2語のコマンドだ。

さて、このコマンド関する日本語のページは殆どヒットせず、公式を調べると説明は極めてシンプルだ。

At the root of a Gatsby site, wipe out the cache (.cachefolder) and public directories:

キャッシュとpublicを削除するらしい。説明はたったこれだけだ。しかしそれで動いた。

なぜこれで動くのか

キャッシュに記事のデータが残っており、残った記事内の画像周りでビルドエラーになっていたのは間違いないだろう。ちなみに画像ファイルは全て元通りに戻してもエラーが出る。記事ファイルもゴミ箱から戻したがエラーが消えなかった。これは明らかに異常だ。

こちら(https://www.gatsbyjs.org/docs/debugging-cache-issues/)にもう少し詳しく書いてあるが、次の文が添えられている。

Note: If you find yourself using this command regularly, consider helping us out and responding to our GitHub Issue with clear reproduction steps.

意訳:もしこのコマンドを頻繁に使う場、我々のお手伝いと思って復旧の手順を添えてGithubにてご連絡下さい。

おそらくこのコマンドは私クラスの開発者が頻繁に利用することを想定していない。したがってGatsbyのネイティブコード周りの技術者でなければあまり深くこのコマンドを知る理由もないだろう。

ともかく日本語にて解説されたページがほぼ無いのがようなので(2020/03現在)私が率先してメモを残しておく。



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)