正如您所说,当您处理 Gatsby 主题时,您需要付出额外的努力来覆盖主题核心中的默认配置设置。Gatsby 允许您使用称为“阴影”的概念来制作它。基本上是一种覆盖默认配置的自定义配置(从徽标到 CSS 等)。从他们的文档中:
盖茨比主题引入了一个名为“阴影”的概念。此功能允许用户src
用自己的实现替换 webpack 包中包含的目录中的文件。这适用于您站点中的 React 组件、页面src/pages
、JSON 文件、TypeScript 文件以及任何其他导入的文件(例如.css
)。
一个实际的用例是当您安装gatsby-theme-blog
并想要自定义作者Bio
组件以添加您自己的传记内容时。gatsby-theme-blog/src/components/bio.js
Shadowing 让您可以用自己的文件替换主题的原始文件 ,以进行所需的任何更改。
您需要node_modules
使用自己的组件、资产和样式重新创建主题结构(在 中检查)。例如,给定该结构:
├── gatsby-browser.js
├── gatsby-config.js
├── gatsby-node.js
└── src
├── components
│ ├── bio-content.js
│ ├── bio.js
│ ├── header.js
│ ├── home-footer.js
│ ├── layout.js
│ ├── post-date.js
│ ├── post-footer.js
│ ├── post-hero.js
│ ├── post-link.js
│ ├── post-list.js
│ ├── post-title.js
│ ├── post.js
│ ├── posts.js
│ └── seo.js
├── gatsby-plugin-theme-ui
│ └── components.js
└── gatsby-theme-blog-core
└── components
├── post.js
└── posts.js
要添加自定义bio-content.js
组件,您需要添加一个名为bio-content.js
under的文件/src/gatsby-theme-blog/components/bio.js
,以此类推其他自定义组件。