Nuxt2中::v-deep弃用报错无法消除,求有效解决方案
解决Nuxt 2 + Vue 2.6.12下的
::v-deep弃用警告 排查第三方依赖中的过时写法
你的代码已经替换了写法,但警告可能来自node_modules里的第三方组件。可以按以下方式处理:- 运行
npm run dev时,仔细查看警告的完整输出,通常会附带触发警告的文件路径,定位到对应的依赖包。 - 根据情况选择处理方式:
- 检查该依赖是否有更新版本,升级到修复了该写法问题的版本。
- 若无法更新,使用
patch-package工具给依赖打补丁,手动将其中的::v-deep替换为:deep()写法。
- 运行
配置Nuxt忽略特定警告
在nuxt.config.js中添加vue-loader的自定义配置,过滤掉该弃用警告:export default { build: { extend(config, { isDev, isClient }) { if (isDev && isClient) { const vueLoader = config.module.rules.find(rule => rule.loader === 'vue-loader') if (vueLoader) { vueLoader.options.compilerOptions = { ...vueLoader.options.compilerOptions, warnHandler: (msg, warn) => { if (!msg.includes('::v-deep usage as a combinator has been deprecated')) { warn(msg) } } } } } } } }调整Vue编译依赖版本
Vue 2.6.12搭配的@vue/compiler-sfc较新版本会触发该警告,可锁定适配Vue2的编译依赖版本:
在package.json中添加:"resolutions": { "@vue/component-compiler-utils": "^3.3.0" }之后删除
node_modules、package-lock.json,重新执行npm install。(注:该方法需要npm支持resolutions,若使用yarn可直接添加该配置)
内容的提问来源于stack exchange,提问作者Mostafa Said
相关产品推荐
相关产品推荐

