Ruby sass和导入文件中未定义的变量

f4t66c6m  于 2022-12-03  发布在  Ruby
关注(0)|答案(1)|浏览(151)

我在scss文件夹中有两个scss文件,它们将被包含在一个主app.scss文件中。所有这些都被转移到/css文件夹中相应的css文件中:
scss/全局/样本。scss:

$swatch-bg: rgba(30,30,45,1);

scss/全局/面板.scss

.panel {
    background-color: $swatch-bg;   
}

然后它们都包含在我的app.scss文件中:
scss/应用程序。scss:

@import 'global/swatches.scss';
@import 'global/panels.scss';

然后我跑了

sass --watch scss:css

这将在css/文件夹中正确创建所有预期文件。
然而,如果我现在修改panel.scss,它包含一个变量的引用(在app.scss中导入),watcher会抱怨它找不到变量。但是如果我编辑并保存app.scss,它会正确编译,变量也会正确解析。
因此,如果我编辑app.scss,那么在sass编译时,在任何导入文件中定义的任何变量都将可用于后续导入的文件。
我怎样才能让它正确地编译而不必向每个文件添加相同的导入呢?我正在尝试做的事情甚至是可能的吗?

plicqrtu

plicqrtu1#

我设法通过以下方式使用partials来解决这个问题:
首先,重命名我的所有导入以包括前缀,例如:

global/_swatches.scss

然后在我主文件(app.scss)中导入如下:

@import 'global/swatches';

请注意,缺少下划线和.scss文件扩展名

相关问题