sass - sassOptions 中的数据选项在升级到 v3 后停止在 gatsby-plugin-sass 中工作,并用 sass 替换了 node-sass

标签 sass gatsby sass-loader gatsby-plugin

我决定删除 node-sass来自我的 gatsby 项目并使用 sass反而。我遵循了所提到的here对于 v3。我删除了 node-sass现在我的 package.json 中有这些版本:

"gatsby-plugin-sass": "3.1.0",
"sass": "1.32.5",
我需要能够一次性为全局变量/mixins/函数编写一些 @use 或 @import 规则,以便我可以在所有 scss 文件中使用它们,因此我不必一遍又一遍地重复相同的规则。
node-sass像这样的工作:
{
  resolve: `gatsby-plugin-sass`,
  options: {
    includePaths: [`${__dirname}/src/styles`],
    data: `@import "globals.scss";`,
  },
},
升级后,includePaths属性确实有效,但 data没有,我从我的 scss 文件中收到关于“丢失”变量的错误:
{
  resolve: `gatsby-plugin-sass`,
  options: {
    sassOptions: {
      includePaths: [`${__dirname}/src/styles`],
      data: `@use 'globals' as *;`,
    },
  },
},
如果我插入规则 @use 'globals' as *;在每个 scss 文件中,错误都会消失,一切都按预期工作,但我不想插入这一行并修改我所有的 sass 文件。
我很确定这个问题与 sass-loader 有关。和这个声明( documentation ),但我不知道如何使它工作以及为什么它以前有效:

ℹ️ Options such as data and file are unavailable and will be ignored.

最佳答案

根据changelog , data选项已重命名为 prependData然后删除支持 additionalData .所以:

{
  resolve: `gatsby-plugin-sass`,
  options: {
    additionalData: `@use 'globals' as *;`,
    sassOptions: {
      includePaths: [`${__dirname}/src/styles`],
    },
  },
},

关于sass - sassOptions 中的数据选项在升级到 v3 后停止在 gatsby-plugin-sass 中工作,并用 sass 替换了 node-sass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65902498/

相关文章:

css - 使用 scss 导入时 Font Awesome 不显示

css - 覆盖 Vuetify 2.0 sass 变量 $heading-font-family

css - 如何组合 2 个 SASS 函数,因为它们只是使用不同的计算做几乎相同的事情?

reactjs - 错误 : The result of this StaticQuery could not be fetched - Gatsby

reactjs - 为什么在安装完 styled-components 后还需要安装 gatsby-plugin-styled-components

javascript - 使用 webpack 加载 scss 失败

webpack - 强制sass-loader修改css文件

html - 如何将图像保存在 div 容器中

javascript - 我应该将 sourcemaps 部署到生产环境吗?

node.js - 带有 sass-loader 的 Webpack 文件加载器