reactjs - 在 React (Gatsby) 中使用 CSS 模块的全局 SCSS
问题描述
我正在尝试在使用 CSS 模块的 Gatsby 项目中使用一些 SCSS 变量/字体。目前我的项目结构如下所示:
src
├── components
├── Footer
├── footer.module.scss
├── index.js
├── Header
├── header.module.scss
├── index.js
├── Layout.js
├── layout.module.scss
├── pages
├── index.js
├── styles
├── _typography.module.scss
├── _variables.module.scss
Gatsby 的文档建议将全局样式放入 Layout 组件(包含页眉和页脚),然后将其包裹在所有其他组件中。这适用于layout.module.scss
文件中包含的样式,但如果我将 导入_variables.module.scss
到此文件中,则无法使用其他 SCSS 文件中的变量(例如header.module.scss
)。
构建我的应用程序以便我可以访问模块中的全局变量/字体的最佳方法是什么?我只需要在需要时将部分文件导入所有单独的模块吗?
谢谢!
解决方案
你有多种方法。我认为最好和直接的方法是在需要时将部分文件(变量、函数、mixin 等)导入每个单独的模块,因为它将是该特定文件的依赖项(它具有结构意义)。
如果您的系统和模块结构正确,webpack 将摇动您的 SCSS 模块并删除死代码,因此您无需担心将相同的文件(比如说_variables.module.scss
)导入每个特定模块。
推荐阅读
- amazon-athena - Athena Unnesting 混合类型
- arrays - 将文件读入 bash 数组
- node.js - 尝试使用 Node.js 访问 AWS EC2 上的端口 3000 时出现 ERR_SSL_PROTOCOL
- spring-security - 带有 Google 提供商的 Spring Oauth2 客户端不断要求身份验证
- python - 在 Tkinter 中,padx 用作小部件中的参数和网格函数中的参数时有何不同?
- android - 在android中使用wrap_content动画视图
- webrtc - TURN 身份验证如何安全?
- python - 遍历文件
- postgresql - PostgreSQL:当月余额(当前累积行加上上一个累积行)
- grafana - 如何在新的/不同的计算机上恢复 Grafana 仪表板