首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSON导入SCSS/SASS

将JSON导入SCSS/SASS
EN

Stack Overflow用户
提问于 2022-02-02 21:55:23
回答 1查看 469关注 0票数 0

我有一个theme.json和一个index.scss文件来定制材料设计风格。

theme.json

代码语言:javascript
复制
{
    "palette": {
      "primary": {
        "main": "#1A1A1A"
      },
      "secondary": {
        "main": "#993355"
      },
      "error": {
        "main": "#B00020"
      },
      "info": {
        "main": "#EAF4FC"
      },
      "text": {
        "primary": "#1A1A1A"
      },
      "other": {
        "accents": ["#BCAAA4", "rgba(128, 236, 40, 0.5)"]
      }
    },

  }

index.scss

代码语言:javascript
复制
@import "../theme/theme.json";

@use "@material/theme" with (
    $primary: $palette.primary.main, ???????
    $secondary: #018786,
    $background: #fff,
    $surface: #fff,
    $error: #b00020,
    $on-primary: #fff,
    $on-secondary: #442b2d,
    $on-error: #fff,
);

@use "material-components-web/material-components-web";

是否有一种与我的scss文件中的第一个变量类似的将json对象值导入scss的简单方法?提前感谢

EN

回答 1

Stack Overflow用户

发布于 2022-08-10 09:57:40

您可以使用节点-sass-json-进口商。

https://github.com/pmowrer/node-sass-json-importer

我们项目中的例子

webpack.config.json

代码语言:javascript
复制
const jsonInSassImporter = require('node-sass-json-importer');
module.exports = {
  /* ... */

  module: {
    rules: [
      {
        test: /\.scss$/i,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader',
          'postcss-loader',
          {
            loader: 'sass-loader',
            options: {
              implementation: sass,
              webpackImporter: false,
              sassOptions: {
                importer: jsonInSassImporter()
              }
            }
          },
        ],
      },
    ],
  },
  /* ... */
}

图标-字体-哈希-编码. icon生成当某些图标更改

代码语言:javascript
复制
{"iconFontHashCode":"adc26c62bf5e5cca8e8668f4cc17e0a9"}

字体-图标.font

代码语言:javascript
复制
@import '../../../assets/font/icon/icon-font-hash-code.json';

/* ... */

@mixin font-face() {
  @font-face {
    font-family: icon;
    src:
      url('../assets/font/icon/icon.woff2?v=#{$iconFontHashCode}') format('woff2'),
      url('../assets/font/icon/icon.woff?v=#{$iconFontHashCode}') format('woff'),
      url('../assets/font/icon/icon.svg#Roboto?v=#{$iconFontHashCode}') format('svg');
    /* ... */
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70963371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档