仅共享my sass/scss变量的主题变量

仅共享my sass/scss变量的主题变量,sass,theming,Sass,Theming,我需要为几个网络组件共享一些sass/scss变量。为此,我们在npm包上创建了一个非常有用的“_variables.scss”。 问题是我们使用两种颜色: 我称之为“真彩色”:($blue unicorn, $pink butterfly) 主题颜色:($brand color,$secondary color) 而我们只想分享主题颜色变量 主题颜色如下:$brand color:$blue unicorn 如果DA突然决定使用$grey grave和$black shadow颜色,我们只

我需要为几个网络组件共享一些sass/scss变量。为此,我们在npm包上创建了一个非常有用的“_variables.scss”。 问题是我们使用两种颜色:

  • 我称之为“真彩色”:(
    $blue unicorn
    $pink butterfly
  • 主题颜色:(
    $brand color
    $secondary color
我们只想分享主题颜色变量

主题颜色如下:
$brand color:$blue unicorn
如果DA突然决定使用
$grey grave
$black shadow
颜色,我们只需更新npm包,而不必更改各种web组件上所有其他代码的变量名称。 如果你想知道更多关于这个用法的信息,你可以看看这篇关于调色板颜色和主题颜色的文章

包含variables.scss的原始文件如下:

@import 'variables/_colors';

$brand-color: $blue-unicorn;
$secondary-color: $pink-butterfly;
我们使用
scss bundle
npm包为我们包的客户获取该包

$blue-unicorn: #0081EB;
$pink-butterfly: #F62880;

$brand-color: $blue-unicorn;
$secondary-color: $pink-butterfly;
我们不希望用户访问真实的颜色

什么是获得这一点的正确方法?
如果您的用户应该使用scss文件,那么唯一的选择就是新的模块系统,该系统目前仅由Dart Sass编译器支持。您需要将
@import
指令替换为
@use
,并用
-
作为所有私有变量的前缀,因为这会使它们成为私有的,并且不会被共享

同样,目前只有Dart Sass支持这一点


有关更多信息,请参阅。

好!我觉得很完美。我会尽快测试,并给你我的反馈。我无法让它在我的案件中起作用。因为如果我使用
@use'variables/_colors'
;您建议我的$brand color无法访问$blue unicorn。如果我错过了什么,请告诉我。
$brand-color: #0081EB;
$secondary-color: #F62880;