vue?如何引入本地某個(gè)文件?require
vue 引入本地某個(gè)文件 require
vue 使用require引入某個(gè)文件,判斷本地是否有某個(gè)文件
在本地電腦有host.json文件,在項(xiàng)目中引入這個(gè)文件

1.使用require.context判斷某個(gè)文件是否存在
require.context(引入某個(gè)文件的路徑, 是否遍歷該路徑下的所有子目錄,正則匹配后綴名稱)
let obj = require.context(
"/Users/Administrator/test-demo",
false,
/\host\.json$/
); // 檢索符合是 host.json 后綴的所有文件
let host = obj.keys().filter(it => it === "./host.json"); // 過(guò)濾host.json完全匹配文件
if (host && host.length) {
let hostname = require("/Users/Administrator/test-demo/host.json");
console.log(hostname);
}obj.keys()返回所有符合后綴是 host.json 的文件名數(shù)組,并每個(gè)項(xiàng)都是以路徑的形式顯示,所以在文件的前面有./
obj.keys() = ["./1host.json", "./host.json"]
我需要的是完全匹配 host.json 文件,所以使用數(shù)組過(guò)濾函數(shù)filter過(guò)濾host.json文件,如果存在文件則使用require去讀取文件內(nèi)的數(shù)據(jù)
如果檢索不到host.json后綴的文件,obj.keys()返回一個(gè)空數(shù)組
2.使用 try……catch……
try {
let hostname = require("/Users/Administrator/test-demo/host.json");
console.log(hostname);
} catch (error) {
console.log(1111);
}
如果檢索不到host.json后綴的文件,進(jìn)入catch內(nèi),如果有安裝eslint,會(huì)有警告信息,對(duì)強(qiáng)迫癥者不友好。如果不介意,肯定是這個(gè)方法好,代碼少

vue 引入本地文件無(wú)效
無(wú)效的原因是,在webpack打包的設(shè)置(/config/index.js)中,指定將靜態(tài)資源打包到static文件夾下,從而導(dǎo)致路徑錯(cuò)誤。

解決方法
將靜態(tài)資源放在static文件夾下再引入
– 打包之前

– 打包之后

或者在引入時(shí)默認(rèn)靜態(tài)資源在static文件夾下
我在根目錄下建立了css文件夾用來(lái)裝樣式文件

但是在引入的時(shí)候,我認(rèn)為他已經(jīng)在static文件夾下了(因?yàn)檫\(yùn)行時(shí)它會(huì)被安排在那里)

你看,它還在提示,找不到bootstrap.css,因?yàn)樗F(xiàn)在確實(shí)不在static下,但是當(dāng)運(yùn)行時(shí)(打包后不行,因?yàn)閣ebpack會(huì)重新組織文件,導(dǎo)致引入失敗),它會(huì)出現(xiàn)在那里(怎么證明:1.樣式生效了 2. 訪問(wèn)http://localhost:8080/static/css/bootstrap.css得到了正確的樣式)。
– 打包后,文件被重新組織,已經(jīng)看不到bootstrap.css了

當(dāng)然是推薦使用第一種啦,直接將靜態(tài)文件放在static下,舉第二個(gè)例子是為了更清楚的理解位置變化
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli3配置favicon.ico和title的流程
這篇文章主要介紹了vue-cli3配置favicon.ico和title的流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
vue-router 實(shí)現(xiàn)導(dǎo)航守衛(wèi)(路由衛(wèi)士)的實(shí)例代碼
這篇文章主要介紹了vue-router 實(shí)現(xiàn)導(dǎo)航守衛(wèi)(路由衛(wèi)士)的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
vue3使用vuedraggable實(shí)現(xiàn)拖拽功能
這篇文章主要為大家詳細(xì)介紹了vue3使用vuedraggable實(shí)現(xiàn)拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Vue結(jié)合leaflet實(shí)現(xiàn)克里金插值
本文主要介紹了Vue結(jié)合leaflet實(shí)現(xiàn)克里金插值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Vue 2.0 中依賴注入 provide/inject組合實(shí)戰(zhàn)
這篇文章主要介紹了Vue 2.0 依賴注入 provide/inject組合,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-06-06
vue 組件的封裝之基于axios的ajax請(qǐng)求方法
今天小編就為大家分享一篇vue 組件的封裝之基于axios的ajax請(qǐng)求方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
vue實(shí)現(xiàn)原理this.$message實(shí)例詳解
這篇文章主要介紹了vue實(shí)現(xiàn)原理this.$message實(shí)例詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03
一篇文章帶你了解vue.js的事件循環(huán)機(jī)制
這篇文章主要為大家詳細(xì)介紹了vue.js事件循環(huán)機(jī)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
vue jsx 使用指南及vue.js 使用jsx語(yǔ)法的方法
這篇文章主要介紹了vue jsx 使用指南及vue.js 使用jsx語(yǔ)法的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11

