Sass 如何使用跨文件扩展名?

Sass 如何使用跨文件扩展名?,sass,Sass,我有几个sass文件: \u common.sass-全局使用的所有内容,包括变量、混合等 partials/\u partial.sass-部分样式 homepage.sass-特定于主页 现在的问题是: 如果我将\u common.sass导入部分/u partial.sass,然后将部分/u partial.sass导入主页。sass,那么,\u common.sass会编译两次。糟糕 关键是主页.sass必须引用\u common.sass,因此它可以扩展全局类定义并在上使用mixi

我有几个sass文件:

  • \u common.sass
    -全局使用的所有内容,包括变量、混合等
  • partials/\u partial.sass
    -部分样式
  • homepage.sass
    -特定于主页
现在的问题是:

如果我将
\u common.sass
导入
部分/u partial.sass
,然后将
部分/u partial.sass
导入
主页。sass
,那么,
\u common.sass
会编译两次。糟糕

关键是
主页.sass
必须引用
\u common.sass
,因此它可以扩展全局类定义并在上使用mixin和os,以及
\u partial.sass
必须从
\u common.sass
访问全局内容。但是
\u partial.sass
本身必须导入
主页.sass

听起来很简单也不值得,但我很难解决这个难题

编辑(以清除内容):
正如您所看到的,homepage和partial都扩展了全局类
.sprite
。这就是我想要达到的目标。但最后,homepage会在每个嵌套导入中编译
\u common.sass
的全部内容(在特定示例中为2次)

我建议如下:只需创建一个文件,最初添加
// index.scss
@import "common"
@import "homepage"
   // inside homepage
   @import "partials/partial";
如果你这样做了,我认为这些共同点将用于主页和部分页面,因为它们是在它们上面导入的。也就是说,您不需要导入主页内部的公共或部分内容。

主SASS文件的布局 我通常的做法是在我的
site.scss
文件的开头包含该文件

site.scss

//开始时的变量、混合等
@导入“公共/_变量”
@导入“普通/混合”
@导入“常用/_尺寸”
// ...
//使用变量、mixin等的样式。
@导入“模块/诸如此类”
// ...
请注意,如果文件只包含mixin、变量等,那么可以多次包含它,因为不会产生输出。对于某些文本编辑器/IDE,您需要执行此操作才能启动intellisense

文件名标准
SASS有一个标准的命名约定,即以下划线
\uu
开头的文件不应被编译,只能用作其他文件的部分文件。使用此命名约定可能会停止编译错误,具体取决于您使用的工具。

我对您的要求有点困惑。。。但是,将
@import“common”
@import“partials/partial”
放在
主页.sass
文件的顶部难道不起作用吗?很抱歉让它变得不清楚。我将添加其他信息。完成编辑。但是你在顶部指出了一个关键字
。我会试试的,刚刚检查过。同样的结果
common
编译2次。Hm。因此,您的问题是,
common
会被编译两次,即使只有一个
引用
common
(例如,
partial
导入
common
homepage
导入
partial
,而不是
common
)?
// index.scss
@import "common"
@import "homepage"
   // inside homepage
   @import "partials/partial";