vue3中vite的@路径别名与path中resolve实例详解

 更新时间:2023年02月01日 09:36:45   作者:有玉微凉,是为樱琅  
这篇文章主要给大家介绍了关于vue3中vite的@路径别名与path中resolve的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友可以参考下

使用@路径引用

在vue3中,想用@符号代替./…/这种相对路径引用使用,前者相当于从根目录往后找,后者相当于从后往前找。

具体方法就是在vite.config.js中

import { resolve } from "path"

export default defineConfig({
  plugins: [vue()],
  resolve: {
    // ↓路径别名,主要是这部分
    alias: {
      "@": resolve(__dirname, "./src")
    }
  }
})

vite中关于这个的相关配置说明在这里

https://cn.vitejs.dev/config/shared-options.html#resolve-alias

resolve解析

这个resolve是node_modules中的path里面的pash.js提供的一个解析路径的方法,他总是返回一个以相对于当前的工作目录的绝对路径。

官网提供的例子

var path = require("path")     //引入node的path模块

path.resolve('/foo/bar', './baz')   // returns '/foo/bar/baz'
path.resolve('/foo/bar', 'baz')   // returns '/foo/bar/baz'
path.resolve('/foo/bar', '/baz')   // returns '/baz'
path.resolve('/foo/bar', '../baz')   // returns '/foo/baz'
path.resolve('home','/foo/bar', '../baz')   // returns '/foo/baz'
path.resolve('home','./foo/bar', '../baz')   // returns '当前工作目录/home/foo/baz'
path.resolve('home','foo/bar', '../baz')   // returns '当前工作目录/home/foo/baz'

resolve 具体工作方法我的理解就是从后往前先找绝对路径,如果找到了就以这个路径为开头,如果没有找到绝对路径,就以当前文件所在的工作目录为开头。

有了开头之后,他前面的路径就都不要了,从他开始往后找路径,如果是./开头的或者他自己名字开头的就把它拼接上来,如果是…/开头的就把前面的最后一个路径取消掉,把他拼接上去。

而这个__dirname 在resolve方法中是指向被执行 js 文件的绝对路径,他有个好兄弟叫__filename,区别说他还要在后面加上当前文件。
然后这里的路径就是绝对路径来替换@

在这里想说明一下这个roselve方法,你使用上面这个方法的时候,可能会报错,并且系统会给你一个建议的写法

import { resolve } from "path"
//他会要求你把上面的写法改成下面的才可以运行
import pkg from "path"
const { resolve } = pkg;

原因是因为node.js中的导出方式是用的module.exports,并不是exports,他不支持具名导出,他只导出了一个对象,我们在引用的时候不能使用import {} from 的方式,只能先引入这个对象,再取其中的一个方法,可能还有别的办法可以解决这个问题,笔者还未找到,留待以后学习。

总结

到此这篇关于vue3中vite的@路径别名与path中resolve的文章就介绍到这了,更多相关vue3 vite的@路径别名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 通过vue提供的keep-alive减少对服务器的请求次数

    通过vue提供的keep-alive减少对服务器的请求次数

    这篇文章主要介绍了通过vue提供的keep-alive减少对服务器的请求次数,文中给大家补充介绍了vue路由开启keep-alive时的注意点,需要的朋友可以参考下
    2018-04-04
  • ElementUI实现el-table行列合并的操作步骤

    ElementUI实现el-table行列合并的操作步骤

    在前端开发中,数据展示一直是一个重要的部分,而表格则是数据展示最常见的形式之一,ElementUI 是饿了么前端团队推出的一款基于 Vue 的 UI 组件库,其中的 el-table 组件是一个功能强大且灵活的表格组件,今天我们要详细探讨的是 el-table 的行列合并操作
    2024-08-08
  • 基于Vue+Echart绘制动态图

    基于Vue+Echart绘制动态图

    这篇文章主要给大家介绍了基于Vue+Echart的动态图绘制,用户需要展示他的数据库是有哪个数据库转化的,需要展示数据库的轨迹图,前导库的关系图,文中有详细的实现代码,需要的朋友可以参考下
    2023-10-10
  • 在vue中使用eslint,配合vscode的操作

    在vue中使用eslint,配合vscode的操作

    这篇文章主要介绍了在vue中使用eslint,配合vscode的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue for循环出来的数据实现用逗号隔开

    vue for循环出来的数据实现用逗号隔开

    HTML(HyperText Markup Language)是用于创建网页的标准标记语言,正确的HTML编码和结构对于网页的正确显示至关重要,当HTML代码正确无误时,网页的效果图将与设计师的预期相符,反之则可能出现布局错乱、样式失效等问题
    2024-10-10
  • Vue3 在<script setup>里设置组件name属性的方法

    Vue3 在<script setup>里设置组件name属性的方法

    这篇文章主要介绍了Vue3 在<script setup>里设置组件name属性的方法,本文通过示例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-11-11
  • 如何在Vue 3中扩展Vue Router链接详解

    如何在Vue 3中扩展Vue Router链接详解

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用,这篇文章主要给大家介绍了关于如何在Vue 3中扩展Vue Router链接的相关资料,需要的朋友可以参考下
    2021-06-06
  • element的el-tree多选树(复选框)父子节点关联不关联

    element的el-tree多选树(复选框)父子节点关联不关联

    最近想要实现多选框关联的功能,但是却出现了element的el-tree多选树(复选框)父子节点关联不关联的问题,本文就来介绍一下解决方法,一起来了解一下
    2021-05-05
  • 如何修改vue-treeSelect的高度

    如何修改vue-treeSelect的高度

    这篇文章主要介绍了如何修改vue-treeSelect的高度,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Vue3中自定义事件总线的实现代码

    Vue3中自定义事件总线的实现代码

    随着 Vue 3 的发布,一些在 Vue 2 中常用的通信方式在 Vue 3 中可能不再适用或有所变化,为了应对这种变化,我们可以选择在 Vue 3 应用中实现自定义的“事件总线”机制,所以本文给大家介绍了Vue3中如何自定义消息总线,需要的朋友可以参考下
    2024-05-05

最新评论