Sass 如何使用跨文件扩展名?
我有几个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
-全局使用的所有内容,包括变量、混合等\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";