相对路径别名配置,使用 @ 代替 src
# 一、安装 @types/node
import path from 'path'
时,vscode 会出现波浪线,编译时会报错:TS2307: Cannot find module 'path' or its corresponding type declarations.
安装 @types/node 即可
pnpm i @types/node -D |
# 二、更改 vite.config.ts
文件
# 1. 写法一
import { join } from 'path' | |
function resolve(dir: string):string { | |
return join(__dirname, dir) // 可以用 process.cwd () path.join () 和 path.resolve () | |
} | |
export default defineConfig({ | |
plugins: [vue()], | |
resolve: { | |
alias: { | |
'@': resolve('/src'), | |
'#': resolve('/types'), | |
} | |
} | |
}) |
# 2. 写法二
import { defineConfig } from "vite" | |
import vue from "@vitejs/plugin-vue" | |
import path from "path" // 这个 path 用到了上面安装的 @types/node | |
// https://vitejs.dev/config/ | |
export default defineConfig({ | |
plugins: [vue()], | |
// 这里进行配置别名 | |
resolve: { | |
alias: { | |
"@": path.resolve("./src"), // @代替 src | |
}, | |
}, | |
}) |
# 3. 写法三
import path from "path" | |
const pathSrc = path.resolve(__dirname, "src") | |
export default ({ mode }: ConfigEnv): UserConfig => { | |
const env = loadEnv(mode, process.cwd()) | |
return { | |
resolve: { | |
alias: { | |
"@": pathSrc | |
}, | |
}, | |
server: {} | |
plugins: [] | |
} | |
} |
# 三、修改 tsconfig.json
或 tsconfig.app.json
因为 typescript 特殊的 import 方式,需要配置允许默认导入的方式,还有路径别名的配置
// tsconfig.json | |
{ | |
"compilerOptions": { | |
"baseUrl": ".", // 解析非相对模块名称的基本目录,相对模块不会受到 baseUrl 的影响,默认是当前目录,也可以写成 "./" | |
"paths": { // 路径映射,相对于 baseUrl | |
"@/*": ["src/*"], | |
"#/*": ["types/*"], | |
}, | |
"allowSyntheticDefaultImports": true // 允许默认导入 | |
} | |
} |
重启 vscode 生效