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

以下是自定义针对 Vite + TypeScript 项目的完整路径别名配置流程:

以下是针对 Vite + TypeScript 项目的完整路径别名配置流程:


1. 安装必要依赖

 

bash

npm install -D @types/node

2. 配置 vite.config.ts

 

typescript

// vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path' // 需要 @types/node 支持

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
      // 可选:其他路径别名
      '#': path.resolve(__dirname, './types')
    }
  }
})

3. 配置 tsconfig.json

 

json

{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "moduleResolution": "NodeNext",
    "strict": true,
    "jsx": "preserve",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "lib": ["ESNext", "DOM"],
    "skipLibCheck": true,
    "types": ["node"], // 添加 node 类型
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"],
      "#/*": ["./types/*"]
    }
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.vue"],
  "references": [{ "path": "./tsconfig.node.json" }]
}

4. 配置 tsconfig.node.json

 

json

{
  "compilerOptions": {
    "composite": true,
    "module": "ESNext",
    "moduleResolution": "NodeNext",
    "allowSyntheticDefaultImports": true,
    "types": ["node"] // 确保包含 node 类型
  },
  "include": ["vite.config.ts"]
}

5. 配置项目结构验证

确保目录结构如下:

 

markdown

├─ src/
│  ├─ components/
│  │  └─ Layout1.vue
├─ types/
├─ vite.config.ts
├─ tsconfig.json

6. 重启开发服务器

 

bash

npm run dev

7. 验证配置是否生效

在代码中测试:

 

typescript

// src/main.ts
import { createApp } from 'vue'
import App from '@/App.vue' // 验证 @ 别名

createApp(App).mount('#app')

8. 常见问题解决方案

问题 1:TS2307 错误仍然存在

检查以下文件是否存在:

 

bash

ls src/components/Layout1.vue
问题 2:路径解析失败

在终端执行:

 

bash

npx vite inspect

查看输出的 resolve.alias 配置

问题 3:Node 类型报错

重新安装依赖:

 

bash

npm install -D @types/node

9. 完整类型声明文件配置

创建 src/vue.d.ts

 

typescript

// vue.d.ts
declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent<{}, {}, any>
  export default component
}

// 路径别名类型声明
declare module '@/*' {
  export * from '@/src/*'
}

10. 最终验证流程

  1. 确保所有配置文件保存
  2. 停止并重启开发服务器
  3. 检查控制台是否有编译错误
  4. 鼠标悬停导入路径查看是否解析正确

https://i.imgur.com/5tGm8C4.png


按照以上步骤完成后,@/components/Layout1.vue 的路径解析问题应该得到解决。如果仍然存在问题,可以检查:

  1. IDE 缓存:VS Code 执行 Ctrl+Shift+P → Restart TS Server
  2. 文件命名:检查大小写是否一致 (Layout1.vue vs Layout1.Vue)
  3. 扩展名:是否在导入时遗漏了 .vue 扩展名

 "module": "ESNext", 报错

改为

{

  "compilerOptions": {

    "composite": true,

    "module": "NodeNext",

    "moduleResolution": "NodeNext",

    "allowSyntheticDefaultImports": true,

    "types": ["node"] // 确保包含 node 类型

  },

  "include": ["vite.config.ts"]

}

相关文章:

  • 父组件用的是原生监听,子组件用的是onClick,子组件添加了stopPropagation还是没有阻止传播
  • 安宝特科技 | Vuzix Z100智能眼镜+AugmentOS:重新定义AI可穿戴设备的未来——从操作系统到硬件生态,如何掀起无感智能革命?
  • ai-2、机器学习之线性回归
  • [RH342]tcpdump
  • 2025届开发岗秋招经验教训总结
  • 毕业项目推荐:基于yolov8/yolo11的苹果叶片病害检测识别系统(python+卷积神经网络)
  • Metal 学习笔记四:顶点函数
  • IP离线库助力破解网络反诈难题
  • Oracle:什么是存储过程
  • 【利用conda配置管理Python版本和依赖环境】
  • 【Java项目】基于Spring Boot的教师人事档案管理系统
  • AIoT是什么?关键技术及应用
  • C++ Primer 初识泛型算法
  • 服务器离线部署DeepSeek
  • 电脑连接示波器显示波形
  • 在 HuggingFace 中使用 SSH 进行下载数据集和模型
  • git 查询包含某个文件夹的步骤
  • 快节奏生活
  • 关于vue中el-date-picker type=daterange日期不回显的问题
  • 电子商务网站租用香港服务器的好处有哪些?
  • 慢品巴陵,看总编辑眼中的岳阳如何书写“山水人文答卷”
  • 2025全球城市科技传播能力指数出炉,上海位列第六
  • 莫高义在第四届中国新闻发言人论坛开幕式上的致辞
  • 著名文博专家吴远明因交通事故离世,享年75岁
  • 英国6月初将公布对华关系的审计报告,外交部:望英方树立正确政策导向
  • 缅甸内观冥想的历史漂流:从“人民鸦片”到东方灵修