遇到报错
PS C:\Users\demo\> yarn build:stage
yarn run v1.22.19
$ vue-cli-service build --mode staging
WARN A new version of sass-loader is available. Please upgrade for best experience.
\ Building for staging...Starting type checking service...
Using 1 worker with 2048MB memory limit
- Building for staging...
ERROR Failed to compile with 1 error 14:32:08
error in [internal]
INTERNAL ERROR(undefined,undefined) Cannot destructure property 'script' of 'result.descriptor' as it is undefined.
stack trace:
TypeError: Cannot destructure property 'script' of 'result.descriptor' as it is undefined.
at Object.parseComponent (C:\Users\demo\node_modules\@vue\cli-plugin-typescript\vue-compiler-sfc-shim.js:6:13)
at Function.resolveScriptBlock (C:\Users\demo\node_modules\fork-ts-checker-webpack-plugin\lib\VueProgram.js:196:35)
at Object.host.getSourceFile (C:\Users\demo\node_modules\fork-ts-checker-webpack-plugin\lib\VueProgram.js:106:45)
at findSourceFile (C:\Users\demo\node_modules\typescript\lib\typescript.js:101559:29)
at processImportedModules (C:\Users\demo\node_modules\typescript\lib\typescript.js:101900:25)
at findSourceFile (C:\Users\demo\node_modules\typescript\lib\typescript.js:101607:17)
at C:\Users\demo\node_modules\typescript\lib\typescript.js:101436:85
at getSourceFileFromReferenceWorker (C:\Users\demo\node_modules\typescript\lib\typescript.js:101403:34)
at processSourceFile (C:\Users\demo\node_modules\typescript\lib\typescript.js:101436:13)
at processRootFile (C:\Users\demo\node_modules\typescript\lib\typescript.js:101259:13)
ERROR Build failed with errors.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
问题分析
- 这种报错一般出现在VUE2.6.x中,打包的时候会出现Cannot destructure property ‘script’ of ‘result.descriptor’ as it is undefined.
- 一般是版本依赖兼容问题
解决方案 1
- 打开项目中的package.json,根据下面的提示修改版本号
- 重新下载安装依赖
- 执行打包命令
"vue": "^2.6.11" 改为 "vue": "~2.6.11"
"vue-template-compiler": "^2.6.11" 改为 "vue-template-compiler": "~2.6.11"
解决方案 2
网上还有另一个小伙伴写了这个方法,根据报错提示,找到node_modules/ @vue /cli-plugin-typescript/vue-compiler-sfc-shim.js文件
const { script } = result.descriptor
改为:
const { script } = result.descriptor || {}
- 今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢