很多人接触Vite-时只停留在基础操作,真正影响效率的往往是SCSS里写@import "@/styles/variables.scss"不生效、css.preprocessorOptions.scss.additionalData配置后变量仍undefined、构建时variables.scss路径解析失败,开发却正常这些细节。先把使用场景分清楚,再按功能选择做法,能少走不少弯路。
先看原文给出的关键信息:SCSS中@import "@/styles/variables.scss"不生效的根本原因是Dart Sass不识别@/别名,仅支持绝对或相对路径;必须用path.resolve(__dirname, 'src/styles/variables.scss')转为绝对路径,并在additionalData中使用@use "@/styles/;SCSS里写@import "@/styles/variables.scss"不生效 根本不是Vite没配别名,而是SCSS编译器(Dart Sass)压根不认@/这种写法——它只处理绝对路径。继续往下处理时,重点放在这些条件上:验证做法:在variables.scss第一行加@debug "loaded";,启动vite dev,控制台没输出就说明文件根本没被加载。;大概率是additionalData字符串末尾漏了分号,或者换行符是rn(Windows常见),导致SCSS解析器把下一行内容当成同一行语句拼接,直接编译失败。。收尾检查时,再把这些细节对上:统一用反引号单行写:additionalData: `@use "@/styles/variables.scss" as *;,再background: url(#{$logo-url});路径别名在SCSS里从来不是“自动生效”的能力,它是一条要手动打通的链路:Vite别名 → path.resolve生成绝对路径 → additionalData注入。