代码之家  ›  专栏  ›  技术社区  ›  maxorcist

SassError:未定义变量,未能编译,但编译似乎可以工作

  •  0
  • maxorcist  · 技术社区  · 3 年前

    我在react项目中使用节点sass。我已经建立了索引。包含变量、mixin和所有组件的导入的SCS。索引。scss设置为编译到索引。css。

    现在,我有一个名为_variables的文件。我在索引顶部导入的SCS。scss:

    // index.scss
    
    @import "styles/variables";
    @import "components/Button/Button";
    

    在我的按钮里。我正在设置scss color: $red_hero; 在我的控制台中得到这个错误:

    Compiled src/index.scss to src/index.css.
    Compiling...
    Failed to compile.
    
    
    SassError: Undefined variable: "$red-hero".
    

    对我来说奇怪的是,它过去可以工作,但现在已经不行了。更奇怪的是,编译后的索引。css正在正确呈现,但页面拒绝呈现:

    // index.css
    
    .Button {
      color: #A33343;
    }
    

    我猜这是sass的内部问题,网页没有加载索引。它应该是css。我还注意到了其他奇怪的行为,网页从组件scss文件加载样式,即使我忽略了将该组件导入索引。scss。

    任何帮助或想法都将不胜感激。

    0 回复  |  直到 3 年前
        1
  •  0
  •   maxorcist    3 年前

    解决了的!

    在花在解决问题上的时间比我愿意承认的要多得多之后,我把问题缩小到只有在使用软件包时才会发生 generate-react-cli .自动生成的组件在顶部有一条线。将其导入scss文件的js文件。

    我的设置依赖于手动将每个组件scss文件导入一个根scss文件,该文件可以编译为一个常规css文件,并将导入放置到索引顶部带有变量的文件中。scss使所有其他scss文件都可以访问这些变量。当单个组件导入自己的scss文件时,其中包含一个变量,编译器不知道如何计算它,因此它崩溃。

    解决方案是,不要从主服务器以外的任何地方导入scss文件。scss文件。