[@vue/compiler-sfc] the >>> and /deep/ combinators have been deprecated. Use :deep() instead.

vue2.X版本执行 npm run build 命令,报错:

[@vue/compiler-sfc] the >>> and /deep/ combinators have been deprecated. Use :deep() instead.

即:>>> 和 /deep/ 组合器已被弃用,需要使用 :deep() 代替。

这个报错出现在升级项目依赖之后。根据新的依赖重新执行 npm install 命令安装依赖,然后再执行 npm run build 命令,会出现上面的错误提示。将依赖还原为升级前的版本,发现vue版本从2.6.14升级到了2.7.10。
在这里插入图片描述

解决上述问题有三种方式:
1、 按照警告提示,将所有的>>> 和 /deep/ 替换为:deep()。但是对于庞大的老项目来说,改造起来有些费力不讨好。但是这种方式的确能够解决问题。

2、 有博主说可以锁定vue版本,做如下修改:

//将package.json中的配置由
"vue": "^2.6.10"
//改为:
"vue": "2.6.14",

可能这种方式能解决问题,但是个人不建议锁定版本的方式,因为有时候某些版本可能会有安全问题,需要进行版本升级。

3、尝试将依赖还原为升级前的版本,重新执行 npm install 命令安装依赖,然后执行 npm outdated 命令查看已过时的依赖:
在这里插入图片描述
接下来执行 npm update 命令,升级全部已过时的依赖。升级之后再去打包,发现上面提到的问题已经修复了。
为了探究第二次依赖升级后不报错的原因,对比了前后两次升级依赖后的 package-lock.json 文件:
在这里插入图片描述
对比发现,第二次重新升级后,在 @vue/compiler-sfc 中引入了 postcss ,个人理解是借助 postcss 编译了 >>> and /deep/ (如果哪位朋友知道具体编译原理,还请不吝赐教)。

至此,通过重新升级依赖的方式也可以解决上述报错问题。但是,为什么前后两次将vue升级到同一版本,会出现 @vue/compiler-sfc 依赖项不一致的情况,目前还不知道具体原因,如果有朋友了解,可以交流下。

\[@vue/compiler-sfc\] ::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead. 这个报错是因为在Vue 3中,::v-deep选择器作为组合器已经被弃用了,取而代之的是使用:deep(<inner-selector>)选择器。这个报错可能会在一些手写的组件或者一些第三方组件库中出现,比如antdv。尽管这个报错不会影响项目的运行,但是在控制台中显示出来可能会让人感到不舒服。所以,为了避免这个报错,建议使用:deep(<inner-selector>)选择器来替代::v-deep选择器。 #### 引用[.reference_title] - *1* [[@vue/compiler-sfc] the and /deep/ combinators have been deprecated. Use :deep() instead.](https://blog.csdn.net/qq_68155756/article/details/128896890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue2报错“::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector) instead....](https://blog.csdn.net/renovateF5/article/details/126096733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [[@vue/compiler-sfc] ::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector...](https://blog.csdn.net/qq_41956361/article/details/127908664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值