【问题标题】:@import variables for all scss files所有 scss 文件的 @import 变量
【发布时间】:2018-11-02 02:22:22
【问题描述】:

在我的 template.scss 顶部

@import "variables";
@import "reset";

但我在 reset.scss 上遇到错误

Libsass: Error: Undefined variable: "$baseFontSize".
        on line 13 of .../sass/reset.scss
>>          font-size:$baseFontSize;

因为它不知道 variables.scss 。我以前从来没有遇到过这样的问题

variables.scss 是我的第一个 @import 文件,它应该适用于所有其他导入的 .scss

感谢您的帮助

【问题讨论】:

    标签: sass


    【解决方案1】:

    您的变量可能位于规则集(选择器块)内,因此为lexically scoped。因此,它们在所述块之外不可用。为了规避,您应该在 variables.scss 的根级别上定义所有变量,或者将 !global 修饰符添加到您的变量中。

    $baseFontSize: 12px !global;
    

    【讨论】:

      【解决方案2】:

      1) 检查您的重置文件中的$baseFontSize,如果存在,请执行以下操作:

      @import 需要一个文件名来导入。默认情况下,它会查找要直接导入的 Sass 文件,但在某些情况下它会编译为 CSS @import 规则:

      • 如果文件名以http://开头。
      • 如果文件名是url()
      • 如果@import 有任何媒体查询。
      • 如果@import 有任何媒体查询。

      如果以上条件都不满足且扩展名为.scss.sass,则将导入命名的Sass或SCSS文件。如果没有扩展名,Sass 将尝试查找具有该名称和 .scss.sass 扩展名的文件并将其导入。

      【讨论】:

      • $baseFontSize 在 vaiables.scss 中,我所有的变量和 @mixin 都在 variables.scss 中,我先导入 variables.less,然后所有其他导入都可以读取它,在 sass 中我猜不感谢你的回复,但那不是我的问题
      【解决方案3】:

      刚刚在工作中解决了这个问题。

      您的变量文件(以及您拥有的所有部分文件)必须以 _ 开头。

      只要在SASS中使用@import,指令内的文件必须命名为_myFileName.scss

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 2018-03-10
        • 2021-10-29
        • 2020-03-05
        • 2022-06-14
        • 2020-12-31
        • 2019-09-27
        • 2016-02-20
        • 1970-01-01
        • 2022-11-04
        相关资源
        最近更新 更多