Как правильно установить и запросить siteMetadata в Gatsbyjs? - PullRequest
2 голосов
/ 10 мая 2019

Проблема, с которой я сталкиваюсь, заключается в том, что когда я задаю пару ключ-значение в файле gatsby-config.js, я не могу видеть данные внутри GraphiQL. Я следую за документацией и использую ключи, которые используются в примере кода. Смотрите документацию здесь: https://www.gatsbyjs.org/docs/gatsby-config/#sitemetadata

Вот мой gatsby-config.js файл:

module.exports = {
  siteMetadata: {
    title: `My Photography Site`,
    description: `Just the best`,
  },
  plugins: [
    `gatsby-plugin-emotion`,
    `gatsby-transformer-remark`,
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `src`,
        path: `${__dirname}/src/`,
      },
    },
    {
      resolve: `gatsby-plugin-typography`,
      options: {
        pathToConfigModule: `src/utils/typography`,
      },
    },
  ],
}

Вот мой запрос GraphiQL (после перезапуска сервера разработки для перезагрузки файла gatsby-config.js):

query SiteQuery {
  site {
    siteMetadata {
      title
      description
    }
  }
}

Ожидаемые результаты от GraphiQL:

{
  "data": {
    "site": {
      "siteMetadata": {
        "title": "My Photography Site",
        "description": "Just the best"
      }
    }
  }
}

Вот фактический результат GraphiQL:

{
  "errors": [
    {
      "message": "Cannot query field \"description\" on type \"SiteSiteMetadata\".",
      "locations": [
        {
          "line": 5,
          "column": 7
        }
      ],
      "stack": [
        "GraphQLError: Cannot query field \"description\" on type \"SiteSiteMetadata\".",
        "    at Object.Field (/mnt/c/Users/Spencer/dev/gatsbyjs/hello-world/node_modules/graphql/validation/rules/FieldsOnCorrectType.js:64:31)",
        "    at Object.enter (/mnt/c/Users/Spencer/dev/gatsbyjs/hello-world/node_modules/graphql/language/visitor.js:334:29)",
        "    at Object.enter (/mnt/c/Users/Spencer/dev/gatsbyjs/hello-world/node_modules/graphql/language/visitor.js:385:25)",
        "    at visit (/mnt/c/Users/Spencer/dev/gatsbyjs/hello-world/node_modules/graphql/language/visitor.js:252:26)",
        "    at validate (/mnt/c/Users/Spencer/dev/gatsbyjs/hello-world/node_modules/graphql/validation/validate.js:63:22)",
        "    at /mnt/c/Users/Spencer/dev/gatsbyjs/hello-world/node_modules/express-graphql/dist/index.js:154:52",
        "    at processTicksAndRejections (internal/process/task_queues.js:89:5)"
      ]
    }
  ]
}

Что странно, так это то, что раньше я смог успешно создать пользовательскую пару ключ-значение, и она работала нормально. У меня был ключ tagLine и значение Panda Site. Обычная клавиша title тоже сработала.

Вот версии программного обеспечения, которые я использую:

  • Гэтсби: 2.5.12
  • узел: v12.1.0
  • нпм: 6,9,0

Я использую подсистему Windows для Linux (WSL). Дайте мне знать, если вам нужны другие файлы конфигурации, включая package.json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...