Vue3解决“找不到模块“@/components/xxx.vue”或其相应的类型声明”

文章目录

    • 前言
    • 背景
    • 问题描述
    • 解决方案
    • 总结

前言

在使用 Vue 3 开发项目时,遇到“找不到模块 ‘@/components/xxx.vue’ 或其相应的类型声明”的错误是一个常见问题。这通常与 TypeScript 和模块解析相关的配置不当有关。本文将详细介绍如何解决此问题,确保你的项目能够正确识别和导入 Vue 组件。

背景

在 Vue 项目中,@ 符号通常用作别名,指向项目的根目录(一般是 src 目录)。这使得模块导入路径更简洁和直观。然而,当使用 TypeScript 时,除了配置 Webpack 或 Vite 以支持别名外,还需要在 TypeScript 配置文件中同步更新别名设置,否则 TypeScript 编译器无法解析这些路径,导致无法找到模块或其相应的类型声明。

问题描述

先上问题截图。
在这里插入图片描述出现这个问题如何解决。这个项目是通过Vite创建的Vue3项目。编辑器使用的是VS Code。

不仅仅代码显示报错,并且编译也报错。

在这里插入图片描述

解决方案

1、安装依赖(主要用于解决 Node.js 环境相关的类型定义问题)

npm i @types/node -D

2、在 vite.config.ts 文件中配置别名:

defineConfig配置项里面增加下面配置:

   resolve:{
    alias:{
      "@":path.resolve(__dirname,'./src')
    }
  }

完整的配置如下:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve:{
    alias:{
      "@":path.resolve(__dirname,'./src')
    }
  }
})

添加后效果如下:
在这里插入图片描述
3、在 tsconfig.json 文件中配置路径映射:
compilerOptions里面增加以下配置

    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"] 
    }

效果图如下:
在这里插入图片描述

4、重启编辑器VS Code
重启后找不到模块这个问题就解决了。完成以上配置后,你可以使用 @ 别名来导入 Vue 组件,而不会遇到模块解析错误。
在这里插入图片描述

总结

通过正确配置 Webpack/Vite 和 TypeScript,确保 @ 别名在项目中正确解析,你可以避免“找不到模块 ‘@/components/xxx.vue’ 或其相应的类型声明”的错误。以上步骤提供了详细的解决方案,帮助你顺利开发 Vue 3 应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/644704.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重生奇迹MU格斗家上手最轻松的职业

重生奇迹MU格斗家玩法攻略,有一个比较奇葩的职业,那就是格斗家。格斗家拥有其他职业没有的优势,就是加体力和敏捷都可以提升攻击力百分比。格斗家玩法攻略 目前格斗家最多的就是敏格玩法,配合智力MM加成后的幽冥光速拳可以说是第…

详解布隆过滤器(含面试考点)

Bloom Filter 底层逻辑主要代码实现解析(以C为例)优缺点应用场景面试常问问题1:什么是布隆过滤器?问题2:布隆过滤器如何处理误报?问题3:如何设计布隆过滤器以最小化误报率?问题4&…

Cobaltstrike框架介绍

Cobaltstrike简介 cobalt strike(简称CS)是一款团队作战渗透测试神器,分为客户端及服务端,一个服务端可以对应多个客户 端,一个客户端可以连接多个服务端,可被团队进行分布式协团操作. 和MSF关系 metas…

Java使用apache.poi生成word

加油,打工人! 工作需求,将现有的word模板有段落和表格,从数据库中查出数据并填充,word里面也有表格数据,需要将excel表格数据单独处理,然后插入到生成好的word文档中。 下面代码模拟从数据库查出…

【简单易用,新人友好】一个轻量级生物信息学流程框架,从此解决99%的生物信息学流程搭建问题...

生物信息学数据分析流程的搭建是一项繁重而复杂的工作。随着行业的发展,各种生信流程框架层出不穷,比如有: NextflowSnakemakeCWLWDL 各种标准,各种规则,令人眼花缭乱。选择太多,往往令人无所适从。特别是新进入行业的…

SwiftUI中的Stepper(系统Stepper以及自定义Stepper)

本篇文章主要介绍一下Stepper,这个组件在UIKit中也已经有较长的历史了,下面看看在SwiftUI中如何使用,有哪些更加便捷的方法呢? Stepper减号(-)和加号()按钮,可以点击后以指定的数值进行加减。 基础初始化方法 Stepp…

NDIS驱动开发-NET_BUFFER体系

网络数据由通过网络发送或接收的数据包组成。 NDIS 提供数据结构来描述和组织此类数据。 NDIS 6.0 及更高版本的主要网络数据结构包括: NET_BUFFERNET_BUFFER LISTNET_BUFFER_LIST_CONTEXT 它们之间的关系如下: 在 NDIS 6.0 及更高版本中, NET_BUFFER …

基于python数据挖掘在淘宝评价方面的应用与分析,技术包括kmeans聚类及情感分析、LDA主题分析

随着电子商务的蓬勃发展,淘宝作为中国最大的在线购物平台之一,吸引了大量的消费者进行购物并留下了大量的客户评价。这些客户评价中包含了丰富的消费者意见和情感信息,对于商家改进产品、提升服务质量以及消费者决策都具有重要的参考价值。 …

一个机器学习问题的重新定义

任何事物都有两面性。 一些机器学习问题也是如此。并非每个回归问题(你认为的)都需要回归。仔细考虑和审视问题的业务不仅可以帮助开发更好的模型,还可以找到有效的解决方案。 重构或重新定义(reframing)是一种改变机…

数据结构-思考完全二叉树

我们知道在完全二叉树中 : (孩子下标-1)/ 2 父节点下标 父节点下标*21 左孩子节点 父节点下标*22 右孩子节点 那我们该怎样理解以便之后不容易忘记呢? 以下是我的思考过程:观察下边的完全二叉树的下标规律…

Docker HTTPS api V2 Manifest V 2, Schema 2 下的免装docker下载镜像的方法

目录 前言 下载镜像代码 使用方法 原代码中无法适配 Schema 2 的原因浅析 如何解决 相对原代码改动的东西 前言 本文提供代码主要是基于 https://github.com/NotGlop/docker-drag 提供的代码修改的。链接中提供的代码应该是是基于HTTPS api V2 Manifest V 2, Schema 1实…

如何使用pycrypt加密工具测试反病毒产品的检测性能

关于pycrypt pycrypt是一款基于Python 3语言开发的加密工具,广大研究人员可以使用该工具来尝试绕过任意类型的反病毒产品,以检测目标反病毒产品的安全性能。 功能介绍 1、目前已知反病毒产品检测率为0/40; 2、支持绕过任意EDR解决方案&#…

Nodejs+Socket.io+Web端完成聊天

前言 源码获取:nodeexpresssocket.ioweb: 聊天demo (gitee.com) 目录结构 后端依赖 启动方式 前端是html正常启动 后端是node app.js 后端app.js核心代码 const express require(express) const app express() var http require(http).Server(app) var io require(so…

AI网络爬虫-自动获取百度实时热搜榜

工作任务和目标&#xff1a;自动获取百度实时热搜榜的标题和热搜指数 标题&#xff1a;<div class"c-single-text-ellipsis"> 东部战区台岛战巡演练模拟动画 <!--48--></div> <div class"hot-index_1Bl1a"> 4946724 </div> …

uniapp+vue3+ts开发小程序或者app架构时候的UI框架选型

使用vue3tsviteuniapp开发小程序或者跨平台app的趋势越来越高&#xff0c;有一个顺手的UI的框架还是非常重要的&#xff0c;官方维护的 uni-ui&#xff0c;支持全端&#xff0c;而且有类型提示&#xff0c;目前已经内置到 GitHub - Sjj1024/uniapp-vue3: 使用uniapp和vue3 ts …

01-05.Vue自定义过滤器

目录 前言过滤器的概念过滤器的基本使用给过滤器添加多个参数 前言 我们接着上一篇文章01-04.Vue的使用示例&#xff1a;列表功能 来讲。 下一篇文章 02-Vue实例的生命周期函数 过滤器的概念 概念&#xff1a;Vue.js 允许我们自定义过滤器&#xff0c;可被用作一些常见的文本…

Photoshop插件(UXP)编写过程中,如何更新sp-checkbox的选中状态

✨问题说明 sp-checkbox是uxpSpectrum UXP Widgets下的一个小组件&#xff0c;内置样式大概是这样&#xff1a; 那么&#xff0c;如果用js动态的改变选中的状态&#xff0c;应该如何做呢&#xff1f; 如果直接是html来写&#xff1a; <sp-checkbox checked>Checked<…

部门来了个测试开发,听说是00后,上来一顿操作给我看蒙了...

公司新来了个同事&#xff0c;听说大学是学的广告专业&#xff0c;因为喜欢IT行业就找了个培训班&#xff0c;后来在一家小公司实习半年&#xff0c;现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍&#xff0c;服务器缩减一半&#xff0c;性能反而提升4倍&#xff01…

Java——图书管理系统万字详解(附代码)

框架搭建 book包 将书相关的放到book包中&#xff0c;创建一个Book类用来设置书的属性&#xff0c;包括书名、作者、价格、类型、是否被借出等。 以上属性均被private所修饰 利用编译器生成构造方法&#xff08;不需要构造isBorrowed&#xff0c;因为其初始值为false&#…

代码审计--一道简单的文件包含题目的多种利用方式

NO.1 传统方法 首先来看下代码 <?php error_reporting(0); if(isset($_GET["file"])){include($_GET["file"]); }else{highlight_file(__FILE__);phpinfo(); } ?>看完代码后再来学习学习函数吧&#xff0c;毕竟菜啊&#xff01;&#xff01;&…