Netlify CMS - сохранить данные в корневой каталог проекта (например, `__dirname`) - PullRequest
1 голос
/ 28 октября 2019

Я использую Netlify CMS в рамках темы Гэтсби. Вот пример структуры моего проекта:

root/
  themes/
    gatsby-theme-example/
      pages/
        index.js
      static/
        admin/
          config.yml
      gatsby-config.js
      package.json
  sites/
    example-theme-site/
      data/
        content.md
      gatsby-config.js
      package.json
  package.json

Дополнительная информация:

  • gatsby-theme-example использует gatsby-plugin-netlify-cms , сФайл config.yml, расположенный по адресу root/themes/gatsby-theme-example/static/admin/config.yml
  • gatsby-theme-example и example-theme-site, подключен через рабочие области пряжи , однако я намерен опубликовать gatsby-theme-example в npm, как только он будет полностью разработан, чтобы пользователиможете установить его как пакет. example-theme-site используется только в целях тестирования разработки.

Это означает, что:

  1. Запуск yarn workspace example-theme-site develop будет запускаться gatsby develop для example-theme-site
  2. Пользователи могут затем посетить http://localhost:8000/admin и получить доступ к Netlify CMS. После входа в систему Netlify CMS будет загружен с использованием файла конфигурации, расположенного в root/themes/gatsby-theme-example/static/admin/config.yml

. Следующий шаг, который я хочу выполнить после этого:

  • Пользователи добавляют контентNetlify CMS
  • При сохранении / публикации эти новые данные сохраняются в каталоге root/sites/example-theme-site/data.

Это проблема, с которой я сталкиваюсь, как файл конфигурациинаходится в gatsby-theme-example, однако я хочу сохранить данные в example-theme-site. Я не уверен, как сделать путь относительно корневого каталога без его жесткого кодирования.

Я вижу, что могу указать место для сохранения данных в file или folder в config.yml, однако, поскольку config.yml - это файл .yml, я не вижу, как я могу использовать что-то вроде __dirname для указания правильного каталога. Единственный вариант, который я вижу, - это жестко кодировать путь к файлу (например, file: "../../sites/example-theme-site/data/content.md") во время разработки, а затем изменить его так, чтобы он относился к node_modules непосредственно перед публикацией темы в npm.

Есть ли здесь более подходящее решение?

1 Ответ

0 голосов
/ 04 ноября 2019

Расположение файла конфигурации в вашем репо не имеет значения - файл конфигурации обрабатывается в браузере. Все пути в вашей конфигурации всегда относятся к корню репо.

...