テスト用記事(.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 (
.cache
folder) 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現在)私が率先してメモを残しておく。