Vite项目中Sass变量在Vue组件里失效怎么办?
我在用Vite+Vue3开发时,按照文档在组件style标签里写了lang=”scss”,但定义的$primary-color变量一直报未识别的标识符错误,控制台提示”undefined variable”。
这是我的组件代码:
<template>
<div class="container">测试颜色</div>
</template>
<script setup>
</script>
<style lang="scss">
$primary-color: #41b883;
.container {
color: $primary-color; // 这里报错
}
</style>
已经安装了sass包,但问题依旧。网上说Vite默认支持预处理,是不是需要额外配置?或者变量写法有问题?
解决方法很简单:把变量单独抽出来,用文件引入的方式就行。比如创建一个
_variables.scss文件:然后在你的组件里导入这个文件:
这样变量就生效了。注意路径要写对,用
@可以快速指向src目录。如果你用的是.scss后缀,Vite会自动处理,不用额外配什么loader。