从一个sass文件到另一个sass文件的sass键和值映射

从一个sass文件到另一个sass文件的sass键和值映射,sass,node-modules,Sass,Node Modules,我有多个scss文件 例如: main.scss:主文件包含一个颜色列表,这里我只使用了2个作为示例 $ex-color-main: ( ‘red’: ( ‘bg’ : #bd1118, ‘text’ : #fff, ), ‘green’: ( ‘bg’ : #93b923, ‘text’ : #fff, ), ); $ex-print-bg: true !de

我有多个scss文件

例如:

main.scss:主文件包含一个颜色列表,这里我只使用了2个作为示例

$ex-color-main: (

    ‘red’: (
        ‘bg’      : #bd1118,
        ‘text’    : #fff,
    ),

    ‘green’: (
        ‘bg’      : #93b923,
        ‘text’    : #fff,
    ),

);

$ex-print-bg: true !default;
$ex-print-color: true !default;
$color: $ex-color-main;

@if ($ex-color-classes == true) {
    @each $key, $value in $color {
        @include ex-create-classes($key, $value, $ex-print-bg, $ex-print-color);
    }
}

@if ($ex-colors-cssvars == true) {

    :root {
        @each $key, $value in $color {
            --ex-color--#{$key}: #{map-get($value, ‘bg’)};
            --ex-fgcolor--#{$key}: #{map-get($value, ‘text’)};
        }
    }
}
我正在使用npm节点模块进行编译。主文件编译为css文件,如下所示:

ex-color-classes.css:

.ex-color--red {
    color: #bd1118; }

.ex-color—-green {
    color: #93b923; }
ex-color-css-vars.css:

:root {
    —-ex-bg-—red: #bd1118;
    —-ex-color-—red: #fff;
    —-ex-bg—-green: #93b923;
    —-ex-color—-green: #fff; }
page.scss:页面文件必须包含来自main和main的颜色,这是一个很长的列表

$ex-color-page: (

    ‘danger’: include keys and values from red,

    ‘success’: include keys and values from green,

);
我可以使用:

$ex-color-page: (

    ‘danger’: (
        ‘bg’: var(--ex-bg--red),
        ‘text’: var(--ex-color--red),
    ),

    ‘success’: (
        ‘bg’: var(--ex-bg--green),
        ‘text’: var(--ex-color--green),
    ),

);

但我想知道,有没有更干净、更好的方法将键和值从main.scss导入page.scss?

因此我想出了一种更干净的方法:

$ex-color-page: (

    ‘danger’: map-get($ex-color-main, 'red'),

    ‘success’: map-get($ex-color-main, 'green'),

);