Полное сообщение об ошибке на терминале:
error GraphQL Error Field "image" must not have a selection since type "String" has no subfields.
Это похоже на настоящую дурацкую ошибку, она появляется здесь:
Гэтсби выпуск 4123Гэтсби выпуск 11412Гэтсби выпуск 11534гэтсби выпуск 2050Гэтсби выпуск 3531Гэтсби комментарий плагин вопрос 2netlify-cms проблема 325
А также несколько вопросов/ответов Stackoverflow.
Но ответы/исправления повсюду. Некоторые люди неправильно пишут свои файлы или неправильно заказывают плагины (я так думаю). В других случаях человеку нужно сильно переписать exports.onCreateNode в gatsby-node.js. В других случаях исправление заключается в повторном клонировании вашего репо и повторном запуске npm install.
Во всяком случае, я пробовал то, что чувствует обо всем. Кажется, многие десятки или сотни людей столкнутся с этой ошибкой, когда попытаются начать работу с Гэтсби. Что они должны проверить? С чего им начать исправлять это? Кажется, есть 7 потенциальных вещей, которые нужно проверить...


Эта ошибка, по-видимому, вызвана самыми разными причинами. В моем случае это был порядок в gatsby-config.js. Мне пришлось переместить gatsby-plugin-sharp, gatsby-transformer-sharp и gatsby-transformer-remark над плагинами файловой системы.
Для многих других (если вы просматриваете те проблемы, которые я упомянул):
удачи, ты никогда не вернешь эти 12 часов своей жизни.
@ZeeshanSafdar Большое спасибо! Но я хотел бы отметить, что мы должны сначала установить Гэтсби-замечание-относительные-изображения.
Чтобы добавить в контрольный список при обнаружении этой ошибки:
Убедитесь, что у вас действительно есть изображения в папке, настроенной в gatsby-conf.js:
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
}
и что они соответствуют любому пути в вашем graphql. Если ваш запрос возвращает «myImage.png», но это не файл в ваших изображениях, вы получите эту ошибку.
В моем случае этот код был пропущен из gatsby-node.js
exports.onCreateNode = ({ node, actions, getNode }) => { const { createNodeField } = actions fmImagesToRelative(node) // convert image paths for gatsby images if (node.internal.type ===MarkdownRemark) { const value = createFilePath({ node, getNode }) createNodeField({ name:slug, node, value, }) } }После добавления этого кода больше нет ошибки Поле «изображение» не должно иметь выбора, так как тип «Строка» не имеет подполей.