Vite里怎么配置别名让路径不那么乱?
我用 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’。是不是还缺了啥配置?
Vite 的 alias 解决了打包时的路径解析,但 TypeScript 不认识这个别名。你需要在 tsconfig.json 里也配一下:
这样 TS 就知道 @ 指向哪了。
如果你是用 JS 而不是 TS,那问题可能在别的地方。检查一下:
1. 你的 src 目录是不是真的叫 src?大小写对不对?
2. components 目录是不是放在 src 下面?
还有个小坑,Vite 默认不会自动补 .vue 后缀,有时候会找不到文件。你可以改成这样:
extensions 加上去基本就能正常工作了。
另外提醒一下,VSCode 可能会缓存旧的 tsconfig,配置改完记得重启一下编辑器,不然它还是识别不了。