SassError: Undefined variable, Failed to Compile but compile seems to work
SassError: Undefined variable, Failed to Compile but compile seems to work
我在我的 React 项目中使用 node-sass。我设置了一个 index.scss,其中包含我的变量、mixin 和所有组件的导入。 index.scss 设置为编译为 index.css。
现在,我在 index.scss:
的顶部导入了一个名为 _variables.scss 的文件
// index.scss
@import "styles/variables";
@import "components/Button/Button";
在我的 Button.scss 中,我正在设置 color: $red_hero;
并在我的控制台中收到此错误:
Compiled src/index.scss to src/index.css.
Compiling...
Failed to compile.
SassError: Undefined variable: "$red-hero".
对我来说很奇怪的是它以前可以工作,但现在不再工作了。更奇怪的是,编译后的 index.css 渲染正确,但页面拒绝渲染:
// index.css
.Button {
color: #A33343;
}
我猜这是 sass 的内部问题,网页没有按应有的方式加载 index.css。我还注意到其他奇怪的行为,即使我忽略了将该组件导入我的 index.scss.
,网页也会从组件 scss 文件加载样式
如有任何帮助或想法,我们将不胜感激。
已解决!
在解决问题所花费的时间比我愿意承认的要多得多之后,我将问题缩小到仅在使用包 generate-react-cli
时才会发生。自动生成的组件在 .js 文件的顶部有一行导入它的 scss 文件。
我的设置依赖于手动将每个组件 scss 文件导入一个根 scss 文件,该文件可以编译为一个常规 css 文件,其中将导入文件with variables at the top of the index.scss 使所有其他 scss 文件都可以访问这些变量。当单个组件导入它自己的 scss 文件时,其中有一个变量,编译器不知道如何评估它,因此它崩溃了。
解决方案,除了主 .scss 文件外,不要从其他任何地方导入 scss 文件。
我在我的 React 项目中使用 node-sass。我设置了一个 index.scss,其中包含我的变量、mixin 和所有组件的导入。 index.scss 设置为编译为 index.css。
现在,我在 index.scss:
的顶部导入了一个名为 _variables.scss 的文件// index.scss
@import "styles/variables";
@import "components/Button/Button";
在我的 Button.scss 中,我正在设置 color: $red_hero;
并在我的控制台中收到此错误:
Compiled src/index.scss to src/index.css.
Compiling...
Failed to compile.
SassError: Undefined variable: "$red-hero".
对我来说很奇怪的是它以前可以工作,但现在不再工作了。更奇怪的是,编译后的 index.css 渲染正确,但页面拒绝渲染:
// index.css
.Button {
color: #A33343;
}
我猜这是 sass 的内部问题,网页没有按应有的方式加载 index.css。我还注意到其他奇怪的行为,即使我忽略了将该组件导入我的 index.scss.
,网页也会从组件 scss 文件加载样式如有任何帮助或想法,我们将不胜感激。
已解决!
在解决问题所花费的时间比我愿意承认的要多得多之后,我将问题缩小到仅在使用包 generate-react-cli
时才会发生。自动生成的组件在 .js 文件的顶部有一行导入它的 scss 文件。
我的设置依赖于手动将每个组件 scss 文件导入一个根 scss 文件,该文件可以编译为一个常规 css 文件,其中将导入文件with variables at the top of the index.scss 使所有其他 scss 文件都可以访问这些变量。当单个组件导入它自己的 scss 文件时,其中有一个变量,编译器不知道如何评估它,因此它崩溃了。
解决方案,除了主 .scss 文件外,不要从其他任何地方导入 scss 文件。