当前位置: 首页 > news >正文

【解决】Vue + Vite + TS 配置路径别名成功仍爆红

目录

前言

一.vite.config.ts

二.tsconfig.json

三. 别名配置成功,但语法提示爆红问题

四、可能遇到的问题


前言

‌在项目中设置路径别名后仍然出现爆红问题,通常是由于配置不完整或配置错误导致的。Vite 中配置 alias 总共需要配置两个地方:

  • vite.config.ts:让代码编译通过
  • tsconfig.json:让代码编辑器语法验证通过

一.vite.config.ts

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";export default defineConfig({plugins: [vue()],resolve: {alias: {// 相对路径别名配置,使用 @ 代替 src"@": path.join(__dirname, "./src"),},},
});

如果你的项目引入path报错,则需要下载

npm i @types/node

二.tsconfig.json

{...其他代码"compilerOptions": {// 路径"baseUrl": ".","paths": {"@/*": ["./src/*"]}},
}

三. 别名配置成功,但语法提示爆红问题

你可能会发现,明明使用别名后,模块能够正常引入运行,但是语法提示就是爆红。

如果出现这种情况、那么大概率是 tsconfig.json 中的 compilerOptions 配置被覆盖了。
可以通过以下手段排查。

  1. 查看 vscode 对 ts 配置加载的文件

    可以明显的看到,加载完 tsconfig.json 文件后,还加载了 tsconfig.app.json 配置文件

  2.  查看 vscode 默认加载的 tsconfig.json 文件可以发现,它引入了tsconfig.app.json 文件
    {"files": [],"references": [{ "path": "./tsconfig.app.json" },{ "path": "./tsconfig.node.json" }],"compilerOptions": {"baseUrl": ".", // 解析非相对模块的基地址,默认是当前目录"paths": {//路径映射,相对于baseUrl"@/*": ["src/*"]},"allowSyntheticDefaultImports": true},
    }
  3. 查看 tsconfig.app.json 文件我们可以发现,它也有一个 compolerOptions 配置,这样它就把 tsconfig.json 中的配置覆盖掉了
     "compilerOptions": {"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",/* Linting */"strict": true,"noUnusedLocals": true,"noUnusedParameters": true,"noFallthroughCasesInSwitch": true,"noUncheckedSideEffectImports": true,},
    
  4. 找到问题,我们直接把对应的配置放到 tsconfig.app.json 中即可
    "compilerOptions":{... 其他配置"baseUrl":".","paths":{"@/*":["src/*"],"@/*":["./src/*"],// 这样也可以,路径正确即可}
    }
    
  5. 重启 vscode!!!

四、可能遇到的问题

  1. 配置后 vscode 仍然报语法提示错误,但是项目编译通过。

        解决办法:重启vscode

  1. vscode 语法提示通过,项目不通过

        解决办法:vite.config.ts 中 alias 配置指定的地址如"@": path.join(__dirname, "./src"),要使用  path.join 方法处理,用相对路径的话,在编译时可能文件处于的路径会改变。

http://www.xdnf.cn/news/65305.html

相关文章:

  • Unreal Engine中FRotator与FQuat在赛车游戏方向盘控制中的协同应用解析
  • 【C++编程入门】:从零开始掌握基础语法
  • CENTOS 7 安装VNC
  • 【Java面试笔记:基础】1.谈谈你对Java平台的理解?
  • 移动端动态滑动拨盘选择器【Axure元件库】
  • 自注意力机制、多头自注意力机制、填充掩码 Python实现
  • 如何在白平衡标定种构建不同类型的白平衡色温坐标系
  • Android 音悦适配-v4.3.3-可在线播放可下载音乐的第三方APP
  • 【解决方法】关于解决QGC地面站4.4.3中文BUG,无法标注航点的问题
  • 模型检测技术的发展历史简介
  • Redis基础知识
  • 山东大学软件学院创新项目实训开发日志(21)之小问题修复之对话方向修改
  • 工厂模式:简单工厂模式
  • 免费送源码:ava+springboot+MySQL 基于springboot 宠物医院管理系统的设计与实现 计算机毕业设计原创定制
  • 修改IP地址能否精确到地级市的县?——全面解析
  • 第39讲|决策树与作物分布建模:可解释的AI助力农业智能推演
  • WINDOWS下使用命令行读取本地摄像头FFMPEG+DirectShow,ffplay直接播放摄像头数据
  • arkTs:使用Refresh实现下拉刷新功能(含状态提示与动画控制)
  • MySQL知识点讲解
  • n2n 搭建虚拟局域网,实现内网穿透
  • C++计算 n! 中末尾零的数量
  • RIP动态路由(三层交换机+单臂路由)
  • 20250421在荣品的PRO-RK3566开发板的Android13下频繁重启RKNPU fde40000.npu: Adding to iommu gr
  • Java学习路线--自用--带链接
  • win11修改文件后缀名
  • ADB->查看某个应用的版本信息
  • 力扣面试150题--插入区间和用最少数量的箭引爆气球
  • TensorBoard如何在同一图表中绘制多个线条
  • 第 7 篇:总结与展望 - 时间序列学习的下一步
  • k8s集群GPU监控项说明