vue3+vite解决[legacy-js-api]: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.
项目通过 npm update 升级依赖后,启动项目,报警如下:你在 Vue3 + Vite3 项目中使用npm update后遇到的这个警告,是弃用旧版 JavaScript API 的提示。这表明项目中的某些依赖仍在调用旧的 API,但好消息是这通常只是一个警告,目前不会影响项目的正常运行,不过在未来 Dart Sass 2.0.0 中可能会被移除。别担心,这个问题通常可以通过一些配置来解决。
项目通过 npm update 升级依赖后,启动项目,报警如下:
Deprecation Warning [legacy-js-api]: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.

你在 Vue3 + Vite3 项目中使用 npm update 后遇到的这个警告,是 Dart Sass 弃用旧版 JavaScript API 的提示。这表明项目中的某些依赖仍在调用旧的 API,但好消息是这通常只是一个警告,目前不会影响项目的正常运行,不过在未来 Dart Sass 2.0.0 中可能会被移除。
别担心,这个问题通常可以通过一些配置来解决。下面我将为你提供几种解决方案。
🛠️ 解决 Sass Legacy JS API 弃用警告
解决方案对比
以下是几种解决方法的对比,你可以根据自己的情况选择:
| 方法 | 操作 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 配置 Vite | 修改 vite.config.js |
一劳永逸,根治问题 | 需要修改项目配置 | 推荐大多数项目使用 |
| 升级依赖 | 升级 sass 和 sass-loader |
简单直接 | 可能需兼容性检查 | 依赖较旧的项目 |
| 临时静默警告 | 配置 silenceDeprecations |
快速去除警告 | 只是隐藏警告,未真正解决 | 临时应急使用 |
修改 Vite 配置(推荐)
这是最直接有效的解决方法,强制 Sass 使用现代 API 。
-
打开项目根目录下的
vite.config.js(或vite.config.ts) -
修改 CSS 预处理器配置:
你需要确保在
css.preprocessorOptions.scss中设置api: 'modern-compiler'。javascript
// vite.config.js import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()], css: { preprocessorOptions: { scss: { api: 'modern-compiler' // 或 'modern' // 注意:如果你之前在这里有其他 SCSS 配置(如 additionalData),请保留它们 // additionalData: `@import "@/assets/styles/variables.scss";` } } } }) -
保存文件并重启开发服务器:重启你的开发服务器(通常通过
npm run dev),警告应该就会消失。
检查并更新相关依赖
如果修改 Vite 配置后警告仍然存在,可能是某些深层依赖还在使用旧 API。你可以尝试检查并更新主要的 Sass 相关依赖:
bash
# 更新 sass 和 sass-loader (如果它们在项目的 package.json 中) npm update sass sass-loader # 或者指定最新版本安装 npm install sass@latest sass-loader@latest
临时静默警告(不推荐)
如果你只是想暂时隐藏这个警告(例如为了清洁的控制台输出),可以在 Vite 配置中使用 silenceDeprecations 选项。但这只是权宜之计,问题依然存在。
javascript
// vite.config.js
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
silenceDeprecations: ['legacy-js-api'] // 静默特定弃用警告
}
}
}
})
检查第三方库
有时,这个警告可能并非由你的直接代码引起,而是某个第三方 UI 库或插件(例如 uni-ui)使用了旧版 Sass API。如果怀疑是这种情况,可以:
-
检查这些库的官方 issue 或更新日志,看是否有相关修复。
-
尝试更新这些库到最新版本:
npm update your-ui-library。 -
如果库尚未更新,除了等待官方修复,你也可以尝试按照上述方法在自己的 Vite 配置中设置
api: 'modern-compiler',这有时也能覆盖第三方库的调用。
验证配置是否生效
完成上述任何一项更改后,请务必重新启动你的开发服务器(npm run dev),更改才能生效。
✨ 对于大多数情况,首选修改 Vite 配置的方法,因为它直接解决了 API 使用的根本问题,且通常最有效。
修改效果:

修改代码:vite.config.ts
// CSS 预处理器配置
css: {
preprocessorOptions: {
scss: {
api: "modern-compiler" // 或 'modern'
// 注意:如果你之前在这里有其他 SCSS 配置(如 additionalData),请保留它们
// additionalData: `@import "@/assets/styles/variables.scss";`
}
}
},
更多推荐


所有评论(0)