2016-05-13 86 views
1

如何在ES6文件中使用SASS变量?在ES6中加载SASS变量

import base from '../../../styles/_base.scss' 

const styles = { 
    cardHeader: { 
    backgroundColor: base.neutralColorLight // Does not work 
    } 
} 

<CardHeader style={styles.cardHeader} /> 

样式表:

// _base.scss 

$neutral-color-light: rgb(232, 232, 232); 
+0

您是否尝试过'的console.log(基地);'并检查你得到了什么?我不确定这是一个支持的功能,但由于我不知道你的设置,所以我不能说。 – nils

+0

@nils结果为空。不知道我能做什么。 – BAR

回答

1

使用node-sass-json-vars

故宫包node-sass-json-vars让你在@import指定JSON文件。由于您还可以在JavaScript中使用import json文件,因此可以在两者之间轻松使用。

要使用它,你会安装node-sass-json-importer与NPM并将其指定为在命令行上进口商:

./node_modules/.bin/node-sass --importer node_modules/node-sass-json-importer/dist/node-sass-json-importer.js MySASSFile.scss 

在你的SASS文件,你就不会指定变量,而不是留下来JSON文件:

@import 'colors.json' 

.neutral-thing { 
    color: $neutral-color-light 
} 

而且你会做的JSON文件中的以下内容:

{ 
    "neutral-color-light": "rgb(232, 232, 232)" 
} 

而在你的JS文件,只需导入JSON:

import colors from './colors.json' 

const styles = { 
    cardHeader: { 
    backgroundColor: colors.neutral-color-light 
    } 
} 
+0

不错。会给它一个镜头。 – BAR

+0

最后一行不起作用:'backgroundColor:colors.neutral-color-light'。需要camelCase或引用。 – Sigfried