程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • Vue2

  • Vue3

  • vue3 + TS 项目集成

    • 集成element-plus
    • 项目配置 src 别名
      • 1. 在 Vite 中配置 src 别名
        • 修改 `vite.config.ts`
      • 2. 在 TypeScript 中配置 src 别名
        • 修改 `tsconfig.json`
      • 3. 测试 src 别名是否生效
        • 测试组件导入
        • 测试 API 请求
    • 项目配置环境变量
    • 项目集成 SVG 图标
    • 项目集成 SASS(SCSS)
    • 项目集成 Mock 数据
    • 项目集成axios二次封装
    • 项目集成 vite调试工具
    • 项目集成自动注册组件
    • 项目集成自动导入 API
  • Vue全家桶
  • vue3 + TS 项目集成
scholar
2025-04-30
目录

项目配置 src 别名

# 项目配置 src 别名

在开发过程中,随着项目规模的增长,文件之间的引用关系可能会变得复杂。如果使用相对路径引用模块,会导致代码可读性和维护性变差。例如:

import MyComponent from '../../components/MyComponent.vue';
1

问题

  • ../../ 这样的相对路径不直观,难以管理。
  • 如果文件层级发生变化,所有相关的导入路径都需要调整。

为了解决这个问题,我们可以给 src 目录配置别名,这样就可以使用更清晰的方式导入模块:

import MyComponent from '@/components/MyComponent.vue';
1

# 1. 在 Vite 中配置 src 别名

# 修改 vite.config.ts

在 Vite 项目中,我们需要在 vite.config.ts 中添加别名配置,让 @ 代表 src 目录。

// vite.config.ts
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src'), // 配置 `@` 代表 `src` 目录
    },
  },
});
1
2
3
4
5
6
7
8
9
10
11
12
13

说明

  1. import path from 'path':引入 path 模块,用于解析绝对路径。
  2. alias: { '@': path.resolve(__dirname, 'src') }:
    • @ 代表 src 目录,可以直接使用 @ 引入文件,无需使用相对路径 ../../。
    • path.resolve(__dirname, 'src'):获取 src 目录的绝对路径。

# 2. 在 TypeScript 中配置 src 别名

Vite 只负责模块解析,但 TypeScript 本身也需要知道这个别名规则,否则可能会出现无法解析模块的错误。因此,我们还需要在 tsconfig.json 中配置别名。

# 修改 tsconfig.json

{
  "compilerOptions": {
    "baseUrl": "./", // 解析非相对模块的基地址,默认是当前目录
    "paths": {
      "@/*": ["src/*"] // 配置 `@` 代表 `src`
    }
  }
}
1
2
3
4
5
6
7
8

说明

  1. "baseUrl": "./":

    • 设置 baseUrl 让 TypeScript 在当前目录 (./) 解析非相对路径模块。
  2. "paths": { "@/*": ["src/*"] }:

    • 这告诉 TypeScript:@/ 开头的路径都映射到 src/ 目录。

    • 例如:

      import MyComponent from '@/components/MyComponent.vue';
      
      1

      TypeScript 会解析为:

      import MyComponent from './src/components/MyComponent.vue';
      
      1

# 3. 测试 src 别名是否生效

配置完成后,我们可以在项目中测试别名的使用。

# 测试组件导入

假设我们有一个组件 src/components/MyComponent.vue,现在可以在 src/views/Home.vue 中这样引入:

import MyComponent from '@/components/MyComponent.vue';
1

如果 Vite 运行正常,且 TypeScript 没有报错,说明 @ 别名已经成功生效 🎉。

# 测试 API 请求

如果你的项目有 API 请求文件,比如 src/api/user.ts,那么可以这样导入:

import { getUserInfo } from '@/api/user';
1

避免使用 ../../api/user 这种不直观的写法。

编辑此页 (opens new window)
集成element-plus
项目配置环境变量

← 集成element-plus 项目配置环境变量→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式