谢长留 2023-01-16 10:24 采纳率: 66.7%
浏览 56
已结题

别水回答vite.config.js中prependData: Object.keys().map().join('\n')配置无效

vite.config.js中prependData: Object.keys(scssVariables).map(k => \$${k.replace('_', '-')}: ${scssVariables[k]};).join('\n')配置无效,scss文件里的scss变量需要使用js变量动态生成
我有一个js主题文件(上头给的,就得这么用),想在scss文件内引用其中的js变量
//js文件内:
export default
{
'color-bg-normal': '#AEAFB3'
  val:
  {
'color-bg-normal': '#AEAFB3'
  }
}

//scss文件
:root{
    --color-bg:$color-bg-normal;//不报错,也不显示颜色
}

@mixin color-bg {
    background-color:$color-bg-normal//报错
}

Error: Undefined variable.

31 │ background-color:$color-bg-normal
│ ^^^^^^^^^^^^^^^^

vite.config.js已经按网上的修改了(加不加.replace('_', '-')都试过了两种)
const scssVariables = require('./src/assets/styleJS/darkBlack.js');
export default defineConfig({
 //...
  css: {
    preprocessorOptions: {
      //...
        prependData: Object.keys(scssVariables)
          .map(k => `\$${k.replace('_', '-')}: ${scssVariables[k]};`)
          .join('\n')
      }
    }
  }
})
不知道是我配置的问题,还是引用的问题。
  • 写回答

4条回答 默认 最新

  • m0_54204465 2023-01-16 10:29
    关注

    具体原因可能是vite.config.js中的preprocessorOptions配置错误导致的。

    可以尝试检查以下几点:

    检查js文件中的变量名称是否正确,是否与scss文件中引用的变量名称一致。
    检查vite.config.js中preprocessorOptions配置是否正确,特别是prependData和map()函数中的变量名称是否正确。
    检查scss文件中是否有其他错误导致无法正常使用js文件中的变量。
    检查项目中是否有其他配置或插件影响到了scss文件的正常使用。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月24日
  • 修改了问题 1月17日
  • 赞助了问题酬金15元 1月16日
  • 修改了问题 1月16日
  • 展开全部

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭