当前位置: 首页 > 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 方法处理,用相对路径的话,在编译时可能文件处于的路径会改变。

相关文章:

  • Linux常见压缩格式详解
  • Python Cookbook-6.7 有命名子项的元组
  • 量化研究---小果全球大类低相关性动量趋势增强轮动策略实盘设置
  • RHCSA Linux系统 用户和组的管理
  • Kubernetes相关的名词解释Service(15)
  • 海事局发布《船舶智能监控系统技术指南(1.0)》,解读智驱力产品为何成为最佳选择!
  • Linux系统管理与编程13:基于CentOS7.x的LAMP环境部署
  • 高校如何通过打造数字人生态实训室,实现教学改革
  • Java 排序梳理 sort
  • 判断链表是否为环(Java版本自己用)
  • 远程服务器的mysql连接不上,问题出在哪里
  • 高尔夫球规则及打法·棒球1号位
  • aws服务(四)文件存储服务S3 介绍使用代码集成
  • 2024年TETCI SCI2区:增强差分进化麻雀搜索算法DSSADE,深度解析+性能实测
  • 安恒Web安全面试题
  • OpenCV第5课 图像的基本操作
  • 【LaTeX】图片大小调整和并排放置
  • 高品质性价比之王-特伦斯便携钢琴V10
  • Wasm Client SDK线上优化
  • word显示段落标记符(¶)而不是回车符
  • 安徽一季度GDP为12265亿元,同比增长6.2%
  • “小时光:地铁里的阅读”摄影展开幕,嘉宾共话日常生活与阅读
  • 外交部:中企在中韩暂定水域建立渔业养殖设施不违反中韩有关协定
  • 沙龙 | 新书分享:中国电商崛起的制度密码
  • 尹锡悦涉嫌发动内乱案第二次庭审21日举行,媒体获准拍摄
  • 网络社群的早期历史及其启示