vue3中vite的@路徑別名與path中resolve實(shí)例詳解
使用@路徑引用
在vue3中,想用@符號(hào)代替./…/這種相對(duì)路徑引用使用,前者相當(dāng)于從根目錄往后找,后者相當(dāng)于從后往前找。
具體方法就是在vite.config.js中
import { resolve } from "path" export default defineConfig({ plugins: [vue()], resolve: { // ↓路徑別名,主要是這部分 alias: { "@": resolve(__dirname, "./src") } } })
vite中關(guān)于這個(gè)的相關(guān)配置說(shuō)明在這里
https://cn.vitejs.dev/config/shared-options.html#resolve-alias
resolve解析
這個(gè)resolve是node_modules中的path里面的pash.js提供的一個(gè)解析路徑的方法,他總是返回一個(gè)以相對(duì)于當(dāng)前的工作目錄的絕對(duì)路徑。
官網(wǎng)提供的例子
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 '當(dāng)前工作目錄/home/foo/baz' path.resolve('home','foo/bar', '../baz') // returns '當(dāng)前工作目錄/home/foo/baz'
resolve 具體工作方法我的理解就是從后往前先找絕對(duì)路徑,如果找到了就以這個(gè)路徑為開頭,如果沒(méi)有找到絕對(duì)路徑,就以當(dāng)前文件所在的工作目錄為開頭。
有了開頭之后,他前面的路徑就都不要了,從他開始往后找路徑,如果是./開頭的或者他自己名字開頭的就把它拼接上來(lái),如果是…/開頭的就把前面的最后一個(gè)路徑取消掉,把他拼接上去。
而這個(gè)__dirname 在resolve方法中是指向被執(zhí)行 js 文件的絕對(duì)路徑,他有個(gè)好兄弟叫__filename,區(qū)別說(shuō)他還要在后面加上當(dāng)前文件。
然后這里的路徑就是絕對(duì)路徑來(lái)替換@
在這里想說(shuō)明一下這個(gè)roselve方法,你使用上面這個(gè)方法的時(shí)候,可能會(huì)報(bào)錯(cuò),并且系統(tǒng)會(huì)給你一個(gè)建議的寫法
import { resolve } from "path" //他會(huì)要求你把上面的寫法改成下面的才可以運(yùn)行 import pkg from "path" const { resolve } = pkg;
原因是因?yàn)閚ode.js中的導(dǎo)出方式是用的module.exports,并不是exports,他不支持具名導(dǎo)出,他只導(dǎo)出了一個(gè)對(duì)象,我們?cè)谝玫臅r(shí)候不能使用import {} from 的方式,只能先引入這個(gè)對(duì)象,再取其中的一個(gè)方法,可能還有別的辦法可以解決這個(gè)問(wèn)題,筆者還未找到,留待以后學(xué)習(xí)。
總結(jié)
到此這篇關(guān)于vue3中vite的@路徑別名與path中resolve的文章就介紹到這了,更多相關(guān)vue3 vite的@路徑別名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過(guò)vue提供的keep-alive減少對(duì)服務(wù)器的請(qǐng)求次數(shù)
這篇文章主要介紹了通過(guò)vue提供的keep-alive減少對(duì)服務(wù)器的請(qǐng)求次數(shù),文中給大家補(bǔ)充介紹了vue路由開啟keep-alive時(shí)的注意點(diǎn),需要的朋友可以參考下2018-04-04ElementUI實(shí)現(xiàn)el-table行列合并的操作步驟
在前端開發(fā)中,數(shù)據(jù)展示一直是一個(gè)重要的部分,而表格則是數(shù)據(jù)展示最常見(jiàn)的形式之一,ElementUI 是餓了么前端團(tuán)隊(duì)推出的一款基于 Vue 的 UI 組件庫(kù),其中的 el-table 組件是一個(gè)功能強(qiáng)大且靈活的表格組件,今天我們要詳細(xì)探討的是 el-table 的行列合并操作2024-08-08vue for循環(huán)出來(lái)的數(shù)據(jù)實(shí)現(xiàn)用逗號(hào)隔開
HTML(HyperText Markup Language)是用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言,正確的HTML編碼和結(jié)構(gòu)對(duì)于網(wǎng)頁(yè)的正確顯示至關(guān)重要,當(dāng)HTML代碼正確無(wú)誤時(shí),網(wǎng)頁(yè)的效果圖將與設(shè)計(jì)師的預(yù)期相符,反之則可能出現(xiàn)布局錯(cuò)亂、樣式失效等問(wèn)題2024-10-10Vue3?在<script?setup>里設(shè)置組件name屬性的方法
這篇文章主要介紹了Vue3?在<script?setup>里設(shè)置組件name屬性的方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-11-11如何在Vue 3中擴(kuò)展Vue Router鏈接詳解
vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁(yè)面應(yīng)用,這篇文章主要給大家介紹了關(guān)于如何在Vue 3中擴(kuò)展Vue Router鏈接的相關(guān)資料,需要的朋友可以參考下2021-06-06element的el-tree多選樹(復(fù)選框)父子節(jié)點(diǎn)關(guān)聯(lián)不關(guān)聯(lián)
最近想要實(shí)現(xiàn)多選框關(guān)聯(lián)的功能,但是卻出現(xiàn)了element的el-tree多選樹(復(fù)選框)父子節(jié)點(diǎn)關(guān)聯(lián)不關(guān)聯(lián)的問(wèn)題,本文就來(lái)介紹一下解決方法,一起來(lái)了解一下2021-05-05