首页 > 解决方案 > VSCode 显示与 Vue CLI 构建不同的错误

问题描述

我有一个全新的 Vue 3 CLI 项目,其中 VSCode 向我显示了 CLI/Webpack 构建未显示的错误,即使我告诉 VSCode 使用项目中的 TS 版本(与 CLI/Webpack 相同)而不是与 VSCode 一起“发布”的版本:

在此处输入图像描述

虽然我确实知道如何通过从组件 ( ) 中删除“空”props属性来解决这个问题,但我真的很好奇为什么会发生这种情况以及如何防止这种情况在未来造成进一步的混乱。HelloWorldprops: {},

环境

由于我不知道这是由 VSCode、Vue CLI、Webpack 还是某些插件引起的,我将在这里简单列出我的环境的所有可能因素:

复制设置

我已经在这里上传了整个项目
复制步骤(至少在我的机器上):

标签: vue.jsvisual-studio-codewebpackvuejs3vue-cli

解决方案


使用相同的 TypeScript 版本是不够的。在 Vue 3 和 Volar 语言服务器(或 VSCode 扩展)中有两个版本的 TypeScript 编译器:

  • tsc- 不理解.vue文件的标准编译器
  • vue-tsc- 理解.vue文件的 Volar 版本的编译器(但也支持常规的 tsc 文件,如 .ts .json 等)。Volar VS Code 扩展正在使用它,因此它也可以理解 .vue 文件

您的问题是您的 webpack 配置正在使用tsc(与 Volar erxtension 相反),因此 TypeScript 甚至不会扫描 .vue 文件以查找错误。

您可以尝试执行以下操作吗?在您的项目目录中:

  1. npm i vue-tsc
  2. build将package.json 中的脚本更改为:vue-cli-service build && vue-tsc --noEmit

步骤 2 中的示例有点浪费,因为它将首先tsc作为一部分运行vue-cli-service build(并显示“DONE Build complete”,然后当您稍等片刻vue-tsc时,将开始步骤并重新开始 TS 编译,但报告错误)


推荐阅读