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')
}
}
}
})