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-example
gatsby -plugin-netlify-cmsを使用し、config.yml
ファイルは次の場所にありますroot/themes/gatsby-theme-example/static/admin/config.yml
gatsby-theme-example
とyarn workspacesexample-theme-site
経由で接続されていますが、完全に開発されたら npmに公開して、ユーザーがパッケージとしてインストールできるようにする予定です。開発テスト目的でのみ使用されます。gatsby-theme-example
example-theme-site
この意味は:
- 実行中
yarn workspace example-theme-site develop
は実行さgatsby develop
れますexample-theme-site
- その後、ユーザーは
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
データを保存する場所を指定できることがわかりましたが、 .yml ファイルであるため、正しいディレクトリを指定するconfig.yml
方法などを使用する方法がわかりません。__dirname
私が確認できる唯一のオプションは、開発中にファイル パス (例: ) をハードコードし、テーマを npm に公開する直前にfile: "../../sites/example-theme-site/data/content.md"
相対的になるように変更することです。node_modules
ここに他のより適切な解決策はありますか?