使用Meteor Sass时,从更深的文件中使用基础Sass。

5

我有一个Meteor项目,其文件结构如下:

.meteor
client
  dashboard
    dashboard.scss
  client.scss

我的基本sass文件是位于client文件夹中的client.scss。

如果我在client.scss中定义了$flat-button。那么我不能在dashboard.css中使用它,除非添加import '../client';。然而,当我在多个文件中这样做时,会导致统一的css文件中出现重复条目。如果我不导入它,则Meteor报告找不到变量的错误。

我应该向sass编译器添加设置以使其工作吗?


我在这里看不到问题?如果你需要在其他地方访问变量,那么就在其他地方定义它或者改变导入的顺序。 - cimmanon
拥有一个基础的Sass文件的整个意义在于我不想在每个子文件中重新声明我的颜色。而且据我所知,我对导入顺序没有任何影响力。 - Difusio
你不能创建一个仅包含变量的文件吗? - cimmanon
可以的,但是我需要导入那个文件才能让它起作用。据我所知,Meteor将所有的scss文件粘合在一起形成一个css文件。所以如果我在另外三个文件中导入了该文件,那么Meteor在部署时就会把colors.scss的4份副本粘合在一起。 - Difusio
1个回答

4
如果您在Meteor项目中使用fourseven:scss软件包来编译Sass,您只需要在导入的.scss文件名前加下划线即可,这是Sass命名局部样式表的标准方法
在您的情况下,您的文件夹和文件结构应更改为:
.meteor
  client
    dashboard
      _dashboard.scss
    client.scss

然后你应该能够使用@import语句将_dashboard.scss包含在client.scss中,如下所示:

@import 'dashboard'

如果出于某种原因您不想以这种方式重命名文件,您也可以使用 .scssimport 扩展名来实现相同的结果。
希望能对您有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接