解决vue项目报错:[legacy-js-api]: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.
摘要:Dart Sass 2.0/3.0 将弃用旧版 JS API 和 @import 语法,当前项目(vue3+vite+sass1.54)使用旧版 uview-ui 组件报错。解决方案:1) 临时方案是在 vite.config 中配置 sass/scss 预处理器选项,通过 silenceDeprecations 和 quietDeps 屏蔽警告;2) 根本方案是升级 UI 组件库或改用现代
报错

DEPRECATION WARNING [legacy-js-api]: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.
More info: https://sass-lang.com/d/legacy-js-api
DEPRECATION WARNING [import]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.
More info and automated migrator: https://sass-lang.com/d/import│ @import '@/uni_modules/vk-uview-ui/theme.scss';
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
╵
src\styles\index.scss 1:9 root stylesheet
环境
"sass": "^1.54.5",
"vue": "^3.4.21",
"vite": "5.2.8",
"eslint": "^8.22.0",
"eslint-plugin-vue": "^9.4.0",
node 22.14.0
HBuilderX 4.66
"@dcloudio/uni-app": "3.0.0-alpha-4060320250423001"
解决方案
1)最简单-隐藏控制台的报错
修改项目 /vite.config.ts [.js], 添加红色部分:
// https://vitejs.dev/config/
export default defineConfig({
css: {
postcss: {
plugins: postcssPlugin
},
preprocessorOptions: {
sass: {
silenceDeprecations: ['import', 'slash-div', 'global-builtin', 'legacy-js-api'],
quietDeps: true,
api: 'modern-compiler'
},
scss: {
silenceDeprecations: ['import', 'slash-div', 'global-builtin', 'legacy-js-api'],
quietDeps: true,
api: 'modern-compiler'
},
},
}
})
重新预览/编译,即可消除控制台的报错。
如果还是不行,“api: 'modern-compiler'”换为“api: 'modern'”。
2)最稳妥-升级旧版的vk-uview-ui 或者替换为其他的ui组件,处理好sass。
略...
参考
多个高赞的回答混在一起....
ending...
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐




所有评论(0)