【问题标题】:How to import global SASS with Gatsby如何使用 Gatsby 导入全局 SASS
【发布时间】:2021-02-11 18:23:24
【问题描述】:

我正在尝试将全局 .scss 文件导入所有页面。

我有以下项目结构

/src
  /pages
    index.js
    index.module.scss
    /templates
      /restaurants
        /hungry
          hungry.js
          hungry.module.scss
  /styles
    typography.scss
    variables.scss
  /package.json
    gatsby-plugin-sass
    node-sass
  /fonts
    ...

我尝试通过gatsby-plugin-sass 传递选项,并使用此链接gatsby-browser.js 公开全局样式:Include sass in gatsby globally,但没有运气。

我的typography.scss 文件

typography.scss

将选项传递给 gatsby-config.js

My gatsby-config.js file

Error message

使用 gatsby-browser.js 公开全局样式

gatsby-browser.js

hungry.module.scss

Error message

我也尝试过阅读文档: https://www.gatsbyjs.com/docs/how-to/styling/global-css/

我是 Gatsby 的新手,目前完全没有想法。感谢您的帮助。

谢谢。

【问题讨论】:

    标签: css sass gatsby


    【解决方案1】:

    使用gatsby-browser.js 的方法是完全有效的,它应该可以工作,此外,你的路径在我看来是正确的。

    关于您的typography.scss,显然相对路径似乎不起作用,请尝试使用../../path/to/fonts./path/to/fonts 添加/删除相对性。

    另一种可能对您有用的方法是从您的gatsby-plugin-sass 插件中删除选项并将其作为.scss import 导入到所需的文件中。

    假设您解决了typography.scss 中的相对路径问题(第一步)。完成后,您的 .subtitle 类文件,您可以简单地:

    @import '../../../styles/fonts/typography.scss' 使用它。比如:

       @import '../../../styles/fonts/typography.scss
        .subtitle{
           font-family: $font-medium;
        }
    

    所以,总结一下。第一步应该是修复相关字体导入,然后将该文件直接导入所需的.scss 文件中。


    一旦您评论清单插件(它请求 GitHub 中缺少的资产),它就会正确加载字体:

    注意 K,在这个排版中非常独特。

    Gatsby 使用 /pages 文件夹中的路径来构建页面的 URL。您将模板文件夹放在 /pages 文件夹中,导致一些奇怪的行为。将其移到外面以解决问题。

    【讨论】:

    • 我无法更改字体的路径,因为它们也在 index.js 文件中使用。
    • > 关于您的typography.scss,显然相对路径似乎不起作用......我无法更改字体的路径,因为它们也在 index.js 文件中使用。我尝试按照您的建议导入它们,但出现此错误:Can't resolve '../fonts/HKGrotesk-SemiBold.otf' in '/Users/username/Github/repo/src/pages/templates/restaurants' 如果我将hungry.jshungry.module.scss 放在/pages 根级别它可以工作,但如果它是嵌套页面则不行。感谢您抽出宝贵时间。
    • 你能提供一个工作沙箱吗?不需要更改字体的路径,需要在typography.scss文件中更改相对性。
    • 这是一个最小的例子:github.com/jovil/sandbox 谢谢。
    • 我注意到出于某种原因,我只需要在组件文件夹中移动字体规则,然后它就可以工作了。感谢您的帮助?
    猜你喜欢
    • 2020-01-10
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2020-05-17
    • 2019-06-27
    • 2020-05-18
    • 2016-06-21
    • 2018-05-09
    相关资源
    最近更新 更多