ts 识别不了.vue 找不到模块
时间: 2024-10-04 22:03:59 浏览: 56
当你在Vue 3项目中使用TypeScript并且尝试导入`./App.vue`但遇到错误“找不到模块‘./App.vue’或其相应的类型声明”(ts(2307)),这是因为TypeScript默认不理解`.vue`文件。要解决这个问题,你需要告知TypeScript如何解析`.vue`文件。
**解决方法**[^1]:
1. 在项目根目录下创建一个名为`tsconfig.json`(如果尚未存在)或确保它配置正确,添加如下配置以启用对`.vue`文件的支持:
```json
{
"compilerOptions": {
"moduleResolution": "node", // 使用Node.js模块解析器
"types": ["*.vue"], // 指定需要的类型定义扩展名
"typeRoots": ["./node_modules/@types"] // 设置类型声明文件的位置
}
}
```
2. 或者,如果你使用的是`vue-cli`创建的项目,可以在`@vue/cli-service-preset-typescript`的配置文件`/usr/local/share/.config/vue/cli/service.config.js`中找到`compilerOptions`部分,添加对应配置,如`types`和`typeRoots`。
3. 参考[2]中的建议,在`env.d.ts`(或者在`src`目录下的`global.d.ts`)中加入自定义模块声明:
```typescript
// env.d.ts 或 global.d.ts
declare module '*.vue' {
import type { Component } from 'vue';
const component: Component;
export default component;
}
```
这会告诉TypeScript知道如何去查找并理解`.vue`文件作为组件声明。
阅读全文