Использование объекта в файле конфигурации Gatsby - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь лучше организовать свой конфигурационный файл gatsby, но я не уверен, что все делаю правильно. Кто-нибудь знает, будут ли работать следующие настройки:

module.exports = {
  plugins: [
    { gatsby_plugin__manifest },
    { gatsby_source__file_system__images },
    { gatsby_source__file_system__posts },
  ],
};

const gatsby_plugin__manifest = {
  resolve: `gatsby-plugin-manifest`,
  options: {
    name: `gatsby-starter-default`,
    short_name: `starter`,
    start_url: `/`,
    background_color: `#663399`,
    theme_color: `#663399`,
    display: `minimal-ui`,
    icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
  },
}

const gatsby_source__file_system__images = {
  resolve: `gatsby-source-filesystem`,
  options: {
    name: `images`,
    path: `${__dirname}/src/images`,
  },
}

const gatsby_source__file_system__posts = {
  resolve: `gatsby-source-filesystem`,
  options: {
    name: `posts`,
    path: `${__dirname}/src/posts/`,
  },
}

Я получил сообщение об ошибке gatsby_plugin__manifest is not defined, и мне интересно, из-за того, как я настроил файл?

Ответы [ 2 ]

3 голосов
/ 16 мая 2019

Я вижу два вопроса здесь:

Согласно документации Gatbsy, plugins - это массив строк или объектов. В ES6 { gatsby_plugin__manifest }, это сокращение от { gatsby_plugin__manifest: gatsby_plugin__manifest }, пара ключ-значение. Удаление синтаксиса объекта решает эту проблему.

Во-вторых, объявление gatsby_plugin__manifest до ссылки на него в экспорте приводит к ReferenceError, по причинам, описанным в этот ответ .

Подводя итог этим рекомендациям, для одного из плагинов:

// Declare gatsby_plugin__manifest before export
const gatsby_plugin__manifest = {
  resolve: `gatsby-plugin-manifest`,
  options: {
    // ...configuration here
  },
}

// Remove object syntax around gatsby_plugin__manifest
module.exports = {
  plugins: [
    gatsby_plugin__manifest,
  ],
};

Документация по Gatsby Config

1 голос
/ 16 мая 2019

Переменные, объявленные с const или let, не поднимаются, поэтому на них нельзя ссылаться до объявления.Поместите module.exports ниже объявлений, и он должен работать.

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