Vite里怎么配置别名让路径不那么乱?

闲人文雅 阅读 11

我用 Vite 搭了个 Vue3 项目,导入组件老是写 ../../../components/xxx.vue,看着头大。听说可以配别名,但照着文档改了 vite.config.js 还是报错,说找不到模块。

我试过这样配:

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

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  }
})

结果在 .vue 文件里写 import Comp from '@/components/Comp.vue' 就报错,说 Cannot find module ‘@/components/Comp.vue’。是不是还缺了啥配置?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
打工人俊娜
你的 Vite 配置没问题,问题是你可能还用了 TypeScript,或者少配了一个地方。

Vite 的 alias 解决了打包时的路径解析,但 TypeScript 不认识这个别名。你需要在 tsconfig.json 里也配一下:

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


这样 TS 就知道 @ 指向哪了。

如果你是用 JS 而不是 TS,那问题可能在别的地方。检查一下:

1. 你的 src 目录是不是真的叫 src?大小写对不对?
2. components 目录是不是放在 src 下面?

还有个小坑,Vite 默认不会自动补 .vue 后缀,有时候会找不到文件。你可以改成这样:

resolve: {
alias: {
'@': resolve(__dirname, 'src')
},
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
}


extensions 加上去基本就能正常工作了。

另外提醒一下,VSCode 可能会缓存旧的 tsconfig,配置改完记得重启一下编辑器,不然它还是识别不了。
点赞
2026-03-20 10:19