下面给你一份 Vite 中 Sass 报警告 “JS API is deprecated(Sass JS API 已过期)” 的原因 + 最稳解决办法,基于当前(2025)最新的 Sass 与 Vite 生态规范整理。
这份指南包括根本原因、错误示例、最佳解决方案、未来迁移方向,一看就懂、马上能用。
🚨 一、为什么 Vite 中出现 Sass “JS API deprecated” 警告?
从 Sass 1.77+ 开始,官方宣布:
传统 JavaScript API(如 render / renderSync / compile / compileString 等旧方式)已过期(deprecated),未来会被移除。
Vite 的样式处理链条中,通常会由:
Vite → esbuild / rollup → sass → dart-sass → 旧 JS API
也就是说:
只要你项目中的某个依赖在调用旧 API,控制台就会出现警告。
常见触发依赖:
sass-loader(少见于 Vite,但部分插件会间接使用)vite-plugin-style-importvite-plugin-sass-dts- 某些 UI 框架内部 Sass 编译(如旧版 ElementPlus / Vuetify)
- 你自己代码中使用 sass API(如 node-sass → dart-sass 手写脚本)
所以即使你的 vite.config.js 没有改动,也会冒出 Warning。
⚠️ 警告示例
控制台通常会看到:
Deprecation Warning: The Sass JavaScript API is deprecated and will be removed in a future version.
Use the new 'compile' API instead.
🧩 二、Sass 为何弃用旧 JS API?
原因主要是:
- 旧 API 设计不统一(既有 render 又有 compile)
- 异步/同步行为混乱(renderSync 将消失)
- 未来 Sass 将更靠近 WASM 实现,不再维护旧 Node.js 接口
新的 API 更现代统一:
sass.compile()sass.compileString()
🚀 三、解决方案(按优先级排序)
✔️ 方案 1:升级 Sass 到最新版本(推荐)
npm i -D sass@latest
但注意:
升级 Sass 并不能 100% 消除警告,因为真正调用旧 API 的往往是“你项目里的其他依赖”。
即 Sass 是对的,但你用的插件是旧的。
✔️ 方案 2:升级 Vite 插件和 UI 框架
最关键的是升级调用 Sass 的插件:
vite-plugin-style-import
vite-plugin-sass-dts
vite-plugin-vuetify
vite-plugin-vue2
@vitejs/plugin-vue
示例升级:
npm update
或者指定:
npm i vite-plugin-style-import@latest -D
大部分 2024 以前的版本仍在使用过时的 render() API。
✔️ 方案 3:检查是否使用了旧的 Node Sass API(你自己的代码)
如果你有脚本手动调用 Sass,比如:
import sass from 'sass';
sass.render({file: 'xxx.scss'}, () => {})
这是旧 API —— 会触发警告。
正确写法:
import sass from 'sass';
const result = sass.compile('xxx.scss');
✔️ 方案 4:强制使用 WASM 版本的 Sass(未来推荐)
npm i -D sass-embedded
vite.config.js:
export default {
css: {
preprocessorOptions: {
scss: { api: 'modern-compiler' }
}
}
}
⚠️ 注意:只有 Vite 5+ 才能较好兼容 embedded sass。
✔️ 方案 5:暂时忽略警告(不推荐但可行)
有些插件作者还没有升级,从工程角度你可以暂时忽略:
node --no-warnings ...
但这是权宜之计,不推荐长期使用。
🎯 四、如何判断是哪个依赖导致的 Sass API 过期警告?
使用命令:
npm ls sass
找出所有依赖 Sass 的包。
如果某个包依赖了 “node-sass” 或 “sass-loader@<13″:
👉 一定会触发 deprecated 警告。
🧨 五、常见导致警告的依赖(2025 最新)
| 依赖 | 是否会触发旧 API | 解决办法 |
|---|---|---|
| node-sass | ✔ 会 | 换成 dart-sass(即 sass) |
| sass-loader 10 以下 | ✔ 会 | 升级到 13+ |
| vite-plugin-style-import 1.x | ✔ 会 | 升级到 2.x |
| 旧版 Vuetify | ✔ 会 | 用官方 Vite 插件 |
| element-plus < v2 | ⚠️ 部分会 | 升级 2.4+ |
| 旧 rollup-sass 插件 | ✔ 会 | 更换插件或升级 |
🏆 六、最稳的实际工程解决方案(直接套用)
Step 1:升级 Sass
npm i sass@latest -D
Step 2:升级全部相关插件
npm update
Step 3:检查 node-sass / sass-loader 是否存在
npm ls node-sass
npm ls sass-loader
如果有 → 删除 + 替换。
Step 4:用 modern API(如你自己写了 JS 调用 Sass)
Step 5:确保 Vite 版本 ≥ 5(Sass 1.77+ 官方推荐)
🎉 七、总结(最简版)
为什么警告?
因为 Sass 1.77+ 废弃旧 JS API,而 Vite 项目中的某些插件还在用。
怎么彻底解决?
升级 Sass + 升级插件 + 杜绝 node-sass + 使用 compile 新 API。