Добавить локальные файлы разметки в слой GraphQL в Gridsome

Как в Gridsome добавить локальные файлы разметки в слой GraphQL, чтобы можно было добавить graphql в компоненты vue?

На момент написания Gridsome документация по добавлению данных из локальных файлы пусты.


person Brian Zelip    schedule 17.03.2019    source источник


Ответы (1)


Стартовый блог также имеет рабочую реализацию: https://github.com/gridsome/gridsome-starter-blog/blob/master/gridsome.config.js

В репозитории gridsome для source-filesystem есть несколько документов, которые могут помочь: https://github.com/gridsome/gridsome/tree/master/packages/source-filesystem

Документы, импортированные сюда на случай, если в будущем ссылка не будет работать (но ссылка, скорее всего, будет более актуальной).

@ gridsome / исходная файловая система

Преобразуйте файлы в контент, который можно получить с помощью GraphQL в ваших компонентах.

Установить

  • yarn add @gridsome/source-filesystem
  • npm install @gridsome/source-filesystem

использование

module.exports = {
  plugins: [
    {
      use: '@gridsome/source-filesystem',
      options: {
        path: 'blog/**/*.md',
        typeName: 'BlogPost',
        route: '/blog/:year/:month/:day/:slug'
      }
    }
  ]
}

Источник файловой системы также потребует преобразователя для анализа файлов. В приведенном выше примере ищется набор файлов Markdown, чтобы позволить Gridsome понять содержимое файлов, необходимо установить @ gridsome / transformer-comment в качестве зависимости разработчика в вашем проекте. Gridsome автоматически преобразует файлы за вас, если в вашем package.json.

Параметры

path
  • Тип: string обязательно

Где искать файлы. Должен быть глобальный путь.

typeName
  • Тип: string
  • По умолчанию: 'FileNode'

Тип GraphQL и имя шаблона. Файл .vue в src/templates должен соответствовать typeName, чтобы для него был шаблон.

route
  • Тип: string

Определите динамический маршрут, если ваш источник может иметь определенную структуру имени пути. Это сгенерирует единый маршрут для всех узлов из этого источника. Возможные параметры пути: year, month, day, slug или любое значение настраиваемого поля. Если не указано, маршрут для каждого файла будет сгенерирован на основе их пути и имени файла. Подробнее о параметрах маршрута.

refs
  • Тип: object

Определите поля, которые будут иметь ссылку на другой узел. Ожидается, что указанный typeName существует. Но тип контента также можно создать автоматически, если вы установите create: true. Подробнее о ссылках.

{
  refs: {
    // Reference to existing authors by id.
    author: 'Author',
    // Create a Tag content type and its nodes automatically.
    tags: {
      typeName: 'Tag',
      route: '/tag/:id',
      create: true
    }
  }
}
index
  • Тип: Array
  • По умолчанию: ['index']

Определите, какие файлы считать индексными. Эти файлы не будут указывать их имена в пути их маршрута и станут основным index.html файлом каталога. Убедитесь, что существует только один возможный индексный файл для каждого каталога, если определено несколько имен индексов.

person Loren    schedule 24.04.2019