Vite中配置CSS预处理器和PostCSS的核心原则是:预处理器靠安装依赖开箱即用,PostCSS靠配置文件自动生效;二者分工明确,执行顺序为Sass/Less→PostCSS。

在 Vite 中配置 CSS 预处理器(Sass/Less)和 PostCSS,核心原则是:预处理器靠安装编译器依赖即可开箱即用,PostCSS 则靠配置文件自动生效——两者都不强制要求改 vite.config.js,但注入全局变量或定制行为时才需额外设置。
Sass 和 Less:装对包,直接用
Vite 本身不内置 Sass 或 Less 编译器,只提供调度能力。只要装了对应开发依赖,所有 .scss、.sass、.less 文件就能被识别并编译。
- 必须安装 Dart Sass(不是已废弃的
node-sass):npm install -D sass - Less 同理:
npm install -D less - 如果项目混用多种预处理器,每个都要单独安装,缺一不可
- 装完无需修改配置,直接在组件中
import './style/index.scss'就能生效
注入全局变量(SCSS/Less 共享颜色、mixin)
不能靠在每个样式文件顶部写 @import,容易遗漏且 CSS 层不支持别名路径。正确方式是通过 Vite 的 CSS 预处理选项统一注入:
使用固定的 Next.js/Tailwind/Prisma 技术栈构建并记录独立 SaaS 项目,仅将 FastAPI 用于 Python 工作负载,并遵循严格的架构规范。
-
SCSS/Sass:用
css.preprocessorOptions.scss.additionalData,值为字符串,例如:additionalData: `@import "./src/styles/variables.scss";`
路径必须相对于vite.config.js,不支持@/别名 -
Less:不支持字符串注入,要用
less.modifyVars传顶层变量,例如:modifyVars: { '@primary-color': '#1890ff' }
若想复用.mixin(),需额外加插件(如less-plugin-import),否则modifyVars对 mixin 无效
PostCSS:有配置文件就自动启用
Vite 内置 PostCSS 支持,只要项目根目录存在 postcss.config.js 或 postcss.config.cjs,就会自动加载并运行。
立即学习“前端免费学习笔记(深入)”;
- 常见用途包括:自动补全浏览器前缀(
autoprefixer)、CSS 变量降级、代码压缩等 - 示例
postcss.config.js:export default { plugins: [ require('autoprefixer'), require('cssnano') ] } - 不需要在
vite.config.js中显式引入插件,Vite 会自动识别并应用 - 注意:PostCSS 处理的是标准 CSS 输出(即预处理器编译后的结果),不是原始
.scss文件
预处理器 vs PostCSS:分工明确
二者处于不同处理阶段,不可混淆:
- 预处理器(Sass/Less):把带变量、嵌套、mixin 的源码 → 编译成标准 CSS
- PostCSS:把标准 CSS → 加前缀、压缩、转义、生成 sourcemap 等优化
- 执行顺序固定:Sass/Less → PostCSS → 最终输出
- 比如你在 SCSS 里写
$color: red; div { color: $color; },先由 Sass 编译成div { color: red; },再交给 PostCSS 处理

















