SCSS@forward
规则支持几个不错的特性:
@forward './colors' show $red, $green, $blue;
只会转发$red
,$green
和$blue
from./colors
。./colors
否则会导出的所有其他值都将被忽略。@forward 'library' with ($space: 2em);
将$space
提供给库,覆盖库可能对$space
.
我怎样才能同时使用这两者?就我而言,我正在使用include-media
图书馆。我想定义一个像这样包装它的模块(稍微简化):
@forward 'include-media with (
$breakpoints: ( 'small': 400, 'medium': 700, 'large': 1000 )
) show media, media-context;
这里的目标是为库提供$breakpoints
它所期望的值,并且只转发media
和media-context
mixins。不幸的是,该代码无法编译并出现此错误:
Error: expected ";".
╷
3 │ ) show media, media-context;
│ ^
如果我把show
子句放在子句之前,我会得到类似的结果with
。
这似乎不是最理想的,但我可以想象这与两个文件一起工作:
// file _withBreakpoints.scss
@forward 'include-media' with (
$breakpoints: ( 'small': 400, 'medium': 700, 'large': 1000 )
);
// file _filtered.scss
@forward './withBreakpoints' show media, media-context;
肯定有更好的方法吗?