Vue2旧项目运行提示Cannot destructure property ‘script‘ of ‘result.descriptor‘ as it is undefined的解决方案
Vue2旧项目运行提示Cannot destructure property ‘script‘ of ‘result.descriptor‘ as it is undefined的解决方案
我整理整理了依据我这边项目所归纳的一些解决信息:
以下内容为部分情况的解决方案。
不管文章质量如何,能解决大家的问题,就是好内容,希望能帮助到大家。
出错信息关键提示:
Cannot destructure property ‘script‘ of ‘result.descriptor‘ as it is undefined
先看错误提示信息:
一般这个提示出现在项目版本为 vue@2.6.x 的项目版本中,使用 cnpm i 还原依赖的时候出现。
解决办法:(大家按实际情况参考调整,修改前请确保备份package.json)
"vue": "^2.6.11" 改为 "vue": "~2.6.11"
"vue-template-compiler": "^2.6.11" 改为 "vue-template-compiler": "~2.6.11"
经过测试发现,cnpm 安装依赖后,在 node_module 中的 vue 版本安装的是vue@2.7.x 的版本,通过某度查询相关线索后,发现关于cnpm i 还原依赖时的描述如下:
符号^:表示主版本固定的情况下,可更新最新版。例如:vue: “^2.6.11”,2.6.11 及其以上的 2.x.x 都是满足的。
符号~:表示次版本固定的情况下,可更新最新版。如:vue: “~2.6.11”,2.6.11 及其以上的 2.6.x 都是满足的。
无符号:无符号表示固定版本号,例如:vue: “2.6.11”,此时一定是安装2.6.11版本。
其中还原依赖时,x 会取当前版本下的最高版本,也正是由于此原因,才会导致旧项目中的2.6.11 的vue 被cnpm 安装为 2.7.x 或更高。
当然了,如果使用的是科学上网,使用npm 还原依赖,在存在package-lock.json 的情况下是不会出现此情况,因为package-lock.json 会针对使用的模块强制锁定版本。
更多推荐
所有评论(0)