2

Gatsby テーマ内で 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-examplegatsby -plugin-netlify-cmsを使用し、config.ymlファイルは次の場所にありますroot/themes/gatsby-theme-example/static/admin/config.yml
  • gatsby-theme-exampleyarn workspacesexample-theme-site経由で接続されていますが、完全に開発されたら npmに公開して、ユーザーがパッケージとしてインストールできるようにする予定です。開発テスト目的でのみ使用されます。gatsby-theme-exampleexample-theme-site

この意味は:

  1. 実行中yarn workspace example-theme-site developは実行さgatsby developれますexample-theme-site
  2. その後、ユーザーはhttp://localhost:8000/adminNetlify 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またはfolderconfig.ymlデータを保存する場所を指定できることがわかりましたが、 .yml ファイルであるため、正しいディレクトリを指定するconfig.yml方法などを使用する方法がわかりません。__dirname私が確認できる唯一のオプションは、開発中にファイル パス (例: ) をハードコードし、テーマを npm に公開する直前にfile: "../../sites/example-theme-site/data/content.md"相対的になるように変更することです。node_modules

ここに他のより適切な解決策はありますか?

4

1 に答える 1