main.ts 报错( Cannot find module './App.vue'.)

原因: typescript 不能识别.vue 文件

解决办法: 引入 vue 的 typescript declare 库

补充

补充:解决 TypeScript 识别不了 .vue 文件,需要在项目中引入 shim / 类型声明,常见做法有两种:

  1. CLI 2 / Vue 2 + Webpack :在 src/shims-vue.d.ts 中写 declare module '*.vue' { ... },告诉 TS 把 .vue 视为默认导出一个组件的对象。
  2. Vite / Vue 3 :vite-plugin-vue 已内置处理,无需 shim;只需在 tsconfig.json 中 include 到 .vue 文件并开启 jsx: "preserve"。
// src/shims-vue.d.ts
declare module '*.vue' {
  import Vue from 'vue'
  export default Vue
}
// tsconfig.json
{
  "compilerOptions": {
    "moduleResolution": "node",
    "types": ["webpack-env"]
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

来源整理自:vue3js.cn 面试官系列