TypeScript 使用 @ 来映射文件路径解决找不到模块“@/xxx”或其相应的类型声明的问题
环境:Vue3 + Vite + ts
想便捷引用自定义模块
由于在script
中使用import { login } from "../../../net";
这用每次都要查文件夹层数,所以想用@
直接映射src目录
更便捷(可自定义)。如果不添加配置直接引用就会报错找不到模块“@/net”或其相应的类型声明。ts(2307)
下面是配置流程:
1. 配置 vite.config.ts 文件
首先导入 import path from 'path'
,其次添加resolve
配置
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
export default defineConfig({
//你的别的配置
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
},
},
})
如果导入import path from 'path'
报错找不到模块“path”或其相应的类型声明。ts(2307)
。需要先安装包
npm install --save-dev @types/node
如果使用的是yarn就用
yarn add @types/node@12 --dev --tilde
2. 配置tsconfig.json文件
给出映射路径src/*
,并且baseUrl
映射不可缺少,否则会warning
{
"compilerOptions": {
//你的其他配置
/* URLs */
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
},
},
//你的其他配置
}
3.修改你的import
就ok了
以我的代码为例(本身net
文件夹就在src
之下,但是要引用net
的文件在很深的地方),把
import { login } from "../../../net";
改为
import { login } from "@/net";