网站首页 > 知识剖析 正文
在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"]
}
使用示例:
- 上一篇: 一个非常棒的 JS 动画引擎库
- 下一篇: 5分钟看懂的WebAssembly入门指南
猜你喜欢
- 2025-08-02 如何在ReactJS应用程序中使用Wijmo控件?
- 2025-08-02 电子病历编辑器开发之路:Canvas vs DOM 的深度剖析与技术抉择
- 2025-08-02 12条专业的js规则
- 2025-08-02 技术总监说:“每一个v-html,都是一个敞开的XSS后门”
- 2025-08-02 如何使用Wijmo控件创建VueJS应用程序?
- 2025-08-02 90%企业都适用,搭建性能监控体系照抄就行
- 2025-08-02 Vue 3.6 虚拟 DOM 移除!Vapor 到来
- 2025-08-02 HTML DOM Legend 对象
- 2025-08-02 Node.js学习笔记:入门安装及部署
- 2025-08-02 深入浅出虚拟 DOM 和 Diff 算法,及 Vue2 与 Vue3 中的区别
- 08-02雅思写作必背的100个观点词汇及替换表达
- 08-02Android通用Dialog的封装
- 08-02雅思写作必背的100个观点词汇及替换表达,收藏贴
- 08-02雅思写作必背的100个常用词汇(附替换词)
- 08-02Qt - QObject事件
- 08-02C++Qt开发——事件处理函数
- 08-02总结7个实用的Vue自定义指令
- 08-02如何在ReactJS应用程序中使用Wijmo控件?
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)