【问题标题】:Loading SASS Variables in ES6在 ES6 中加载 SASS 变量
【发布时间】:2016-05-14 01:37:39
【问题描述】:

如何在 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);

【问题讨论】:

  • 你试过console.log(base); 并检查你得到了什么吗?我不确定这是一个受支持的功能,但由于我不知道你的设置,所以我不能说。
  • @nils 结果为空。想知道我能做什么。

标签: javascript sass ecmascript-6


【解决方案1】:

使用node-sass-json-vars

npm 包node-sass-json-vars 允许您在@import 中指定json 文件。由于您还可以在 javascript 中import json 文件,这样可以方便地在两者之间使用。

要使用它,您需要使用 NPM 安装 node-sass-json-importer 并在命令行上将其指定为导入器:

./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
  }
}

【讨论】:

  • 不错。会试一试。
  • 最后一行无效:backgroundColor: colors.neutral-color-light。需要 camelCase 或引用。
  • gulp 用户可以使用:npmjs.com/package/gulp-sass-json
猜你喜欢
  • 2021-10-01
  • 2017-12-27
  • 2019-09-13
  • 2016-06-02
  • 2012-04-04
  • 1970-01-01
  • 2021-09-19
  • 2016-04-11
  • 2019-02-09
相关资源
最近更新 更多