Twitter bootstrap 使用@use配置引导Sass变量,同时使引导成员在当前模块中可用
我想使用自己的变量进行配置,然后能够在其他sass文件中导入所有引导配置的成员(并使用WebPackTwitter bootstrap 使用@use配置引导Sass变量,同时使引导成员在当前模块中可用,twitter-bootstrap,webpack,sass,Twitter Bootstrap,Webpack,Sass,我想使用自己的变量进行配置,然后能够在其他sass文件中导入所有引导配置的成员(并使用WebPack:export{}magic) 我通常先声明变量,然后在其中抛出一个@import“~bootstrap/scss/bootstrap”,如: $primary: #eee; $body-color: $primary; @import "~bootstrap/scss/bootstrap"; :export{ primary: $primary; body-color: $b
:export{}
magic)
我通常先声明变量,然后在其中抛出一个@import“~bootstrap/scss/bootstrap”
,如:
$primary: #eee;
$body-color: $primary;
@import "~bootstrap/scss/bootstrap";
:export{ primary: $primary; body-color: $body-color;}
但作为:
Sass团队不鼓励继续使用@import规则。Sass将在未来几年内逐步淘汰它,并最终将其从语言中完全删除。更喜欢@use规则
@与()一起使用:
带有标记为的变量!默认值
可以通过添加($variable:value)来覆盖,但是您必须在文件顶部写入@use
指令(在声明可以配置它的任何变量之前)。我能做的最好的选择是:
@use "~bootstrap/scss/bootstrap" with (primary: #eee, body-color: #eee);
:export{ primary: bootstrap.$primary; body-color: bootstrap.$body-color;}
非常简单但是我不能在配置的变量之间共享值,并且引导程序的成员不能从文件中导出!(我不希望为多个变量声明#eee
,而是希望它们共享一个包含此值的变量)
加载css($url,$with):
另一种方法是使用sass的metamixin,它允许您加载和配置模块,而不受限制在文件顶部执行。(并且能够在此之前声明变量)但这是以不加载任何已加载模块的成员为代价的:
这不会使加载模块中的任何成员在当前模块中可用
用混合器
使用mixin更彻底地配置导入的模块,我无法真正理解如何通过阅读他们的示例来实现这一点,也许这是一个可行的解决方案
问题:
那么,我如何配置带有共享覆盖变量的引导Sass文件(在加载配置中,从模块导出并通过Webpack导出)?这是可能的吗