网站首页 > 技术文章 正文
在vue项目中,经常需要import自定义的模块,格式一般这样:
import request from '../utils/request'
如果目录层次比较深时,书写起来比较麻烦还容易出错。vite允许我们为项目src目录配置一个别名,方便调用,比如要导入一个路径为/src/view/user/info.ts的文件:
//假如已配置src目录的别名为@,则:
import info from '@/view/user/info'
//也可以为/src/view目录配置别名,比如@view,则:
import info from '@view/user/info'
怎么配置别名?
1、在项目根目录中找到vite.config.ts(TS项目)或vite.config.js(JS项目)文件。
打开对应文件后,添加以下代码:
//文件名称:vite.config.ts
//首先导入模块文件:
import {resolve} from 'path'
//然后在defineConfig中添加别名配置:
export default defineConfig({
plugins: [vue()],
//……其他代码等
resolve: {
extensions: ['.ts','.vue','.json','.js'],
alias: {
'@': resolve(__dirname, 'src'), //为src目录配置别名为@
'@view': resolve(__dirname, 'src/view'), //示例,为src/view目录配置别名为@view
}
},
})
增加@和@view后就可以使用这两个别名引用对应的路径了。
当然,如果是TS项目,你可能会发现导入的path模块处提示有错误或“无法找到模块"path"的声明文件”等提示,不用急,只是因为node模块在ts中默认不支持类型声明,安装相关的依赖就可以了:
npm install @types/node --save-dev
2、为TS项目tsconfig.json添加配置
如果你是TS项目,安装相关的依赖后可能还是会发现在页面中使用别名导入时存在一些问题。比如路径名不被识别,输入路径@后不会智能显示路径信息等。
仔细看看项目目录下,是不是有tsconfig.node.json和tsconfig.app.json两个配置文件?如果有就对了(什么,没有?没有就自己编两个嘛,不保证有用,哈哈),打开它们,分别加入以下代码:
//tsconfig.node.json
{
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
"target": "ES2023",
"lib": ["ES2023"],
"module": "ESNext",
"skipLibCheck": true,
/* 插入以下代码 */
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
},
/* 其他不变 */
……
//tsconfig.app.json
{
"extends": "@vue/tsconfig/tsconfig.dom.json",
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
/* 插入以下几行代码 */
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
},
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"erasableSyntaxOnly": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
}
使用示例:
猜你喜欢
- 2025-08-01 基于Springboot + vue实现的社团管理系统
- 2025-08-01 前端开发如何用Mock.js进行数据接口模拟
- 2025-08-01 基于Springboot + vue3实现的教务管理系统
- 2025-08-01 gulp前端自动化构建入门指南(一)
- 2025-08-01 快速搭建页面:一款开源可视化拖拽工具
- 2025-08-01 深入 npm 模块安装机制
- 2025-08-01 【推荐】一个基于 Vue 开源的可视化页面生成工具,前端开发利器
- 2025-08-01 告别node_modules黑洞:团队迁移pnpm节省50G磁盘空间实战指南
- 2025-08-01 告别node_modules黑洞!pnpm凭什么吊打npm和yarn?
- 2025-08-01 Vite构建工具使用教程
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)