无法使用反应应用程序访问 sass 变量编译错误

Gij*_*rts 5 sass reactjs create-react-app

我正在创建一个 react 应用程序,create-react-app并且我尝试按照此处的这些步骤来实现 SASS 预处理器。所以一切都很顺利,我已经开发了我的应用程序的某些部分。但是出于一个非常奇怪的原因,我现在在开发 2 天后在编译时出现错误,我无法想象任何原因。

{
  "status": 1,
  "file": "/Users/glenngijsberts/Documents/Development/toggle/src/components/sass/assets.scss",
  "line": 2,
  "column": 9,
  "message": "Undefined variable: \"$primary\".",
  "formatted": "Error: Undefined variable: \"$primary\".\n        on line 2 of src/components/sass/assets.scss\n>> \tcolor: $primary;\n   --------^\n"
}
Run Code Online (Sandbox Code Playgroud)

所以主要问题是我现在得到一个编译错误,因为我assets.scss无法访问变量。资产被导入到我的 App.scss 中,它也导入了 variables.scss。

在我的 App.scss 文件中

//Import SCSS
@import "./sass/vars.scss";

@import "./sass/popup.scss";
@import "./sass/assets.scss";
@import "./sass/utils.scss";
@import "./sass/modal.scss";
@import "./sass/dropdown.scss";
@import "./sass/visualLine.scss";
@import "./sass/dashboard.scss";
@import "./sass/tabs.scss";
@import "./sass/projects.scss";
@import  "./sass/colors.scss";
Run Code Online (Sandbox Code Playgroud)

有效的是:

资产.scss

//Import SCSS
@import "vars.scss";

span.brand {
    color: $primary;
} 
Run Code Online (Sandbox Code Playgroud)

但是,当然,我不喜欢vars在每个要使用 scss 变量的 scss 文件中都包含该文件。我也不习惯它(当在常规 webpack 项目中只使用 sass 文件时)。

小智 0

您必须将“_”添加到要全局导入的每个文件的开头名称。所以你的 vars.scss 将是 _vars.scss。听起来很奇怪,但是有效。如果没有帮助,请将文件重命名为 *.sass 并使用 sass 语法。它更简单并且可以 100% 工作。