vite+ts项目配置@别名
vite.config.ts
import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vite'
import { resolve } from 'path'
export default defineConfig({
resolve: {
alias: {
'@': resolve(__dirname, 'src') // 路径别名
},
extensions: ['.js', '.json', '.ts', '.vue'] // 使用路径别名时想要省略的后缀名,可以自己 增减
}
})
这里可能会没有path需要进行node配置安装
npm install --save-dev @types/node
vite-env.d.ts
/// <reference types="vite/client" />
declare module '*.vue' {
import { DefineComponent } from "vue"
const component: DefineComponent<{}, {}, any>
export default component
}
tsconfig.json
这里一般的vue项目是没有问题的,但是vite项目请看注意事项
{
"compilerOptions": {
"baseUrl": ".",
// 用于设置解析非相对模块名称的基本目录,相对模块不会受到baseUrl的影响
"paths": {
// 用于设置模块名到基于baseUrl的路径映射
"@/*": [
"src/*"
]
}
}
}
注意事项
先一句话说明问题,路径别名要分别配置在vite和ts中,vite照着网上的教程配置就好。
ts部分,网上都说在tsconfig.json文件中配置,但是想要正常使用路径别名,配置必须放在tsconfig.app.json文件里面
—————————————————————————————
使用vite创建基于vue+ts模板生成的项目文件,根目录下会存在tsconfig.json、tsconfig.app.json、tsconfig.node.json三个ts配置文件。
根据网上说法,据说在vite3以后,引进了references属性,可以根据环境使用不同的配置,app文件是angular专用的ts配置文件,node是node环境使用,最后tsconfig.json会引用这两份配置。
但是我自己实测,把路径别名配置放tsconfig.json里面,ts无法正常解析@路径,只能放在tsconfig.app.json里面。
猜测tsconfig.app.json是用于所有web环境的配置文件,为什么tsconfig.json配置却不能生效,实在很难理解,按理说这是一个层级配置关系,tsconfig.json里面的配置应该作为最终确定才对。
————————————————————————————————