vue3沒有configjs(vue3沒有config)

本文目錄一覽:

vue3.0和2.0的區別是什麼?

vue-cli2.0與3.0在目錄結構方面,有明顯的不同。

vue-cli3.0移除了配置文件目錄,config 和 build 文件夾。

同時移除了 static 靜態文件夾,新增了 public 文件夾,打開層級目錄還會發現, index.html 移動到 public 中。

配置項,3.0 config文件已經被移除,但是多了.env.production和env.development文件,除了文件位置,實際配置起來和2.0沒什麼不同。

沒了config文件,跨域需要配置域名時,從config/index.js 挪到了vue.config.js中,配置方法不變。

Vue3.0不論是原生的html標籤還是vue組件,他們都會通過h函數來判斷,如果是原生html標籤,在運行時直接通過Virtual Dom來直接渲染,同樣如果是組件會直接生成組件代碼。

數據監聽,Vue2.x大家都知道使用的是es5的object.defineproperties中getter和setter實現的,而vue3.0的版本,是基於Proxy進行監聽的,其實基於proxy監聽就是所謂的lazy by default。

版權聲明:本文為CSDN博主「水墨-青花」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

vue2.0和3.0區別

項目目錄不同

1、vue-cli3.o移除了config.文件夾。

2、多了vue.config.js文件。

3、新增了一個views文件夾。

4、刪除了static新增了public文件夾。

5、index.html移動到public了。

配置項不同

1、vue-cli2.0的域名配置,分為開發環境和生產環境。

2、所以配置域名時,需要在config中的dev.env.js和。

3、prod.env.js中分別配置3.0 config.文件已經被移除。

4、但是多了。env.production和env.development文件。

5、除了文件位置,實際配置起來和2.沒什麼不同。

創建項目的方式不一樣

1、vue-cli2.0,vue init webpack項目名。

2、vue-cli3.0 vue create項目名。

基於Vue3+TS+ElementPlus+Qiankun構建微應用項目

Hello 大家好,這裡是Anyin。

最近打算把一個小型項目(小程序點餐系統)重構為微服務+微應用模式,前端的技術棧打算使用Vue3 + TS + ElementPlus + Qiankun 。這裡記錄下我在構建基礎微應用的過程。

重構後的項目相關地址:

•後端: Anyin Cloud [1]

•前端基座: Anyin Cloud Parent[2]

•前端微應用: Anyin Cloud Base[3]

好了,接下來,我們來看看如何基於 Vue3+TS+ElementPlus+Qiankun 構建我們的微應用項目。

另外說下,這裡為什麼不用 Vite 進行構建,原因是 Vite 目前結合 Qiankun 構建為應用還有點問題(采坑了),所以這裡就放棄了。

首先,我們使用 vue-cli 創建一個parent項目:

接着,手動選擇我們要添加的組件:

我們選擇以下組件進行應用的構建,使用空格鍵進行多選,然後回車即可:

選擇vue3.x版本

相關代碼風格、路由模式都是使用默認,css編譯我們使用less:

相關編碼規範我們使用ESLint + Airbnb Config :

最後,完整的選項如下:

當vue-cli幫我們創建好項目,我們進入項目查看下項目目錄,如下:

首先,Qiankun的主應用是需要安裝依賴的,微應用無需安裝依賴,修改配置即可。這裡我們先在主應用安裝依賴

接着,進行相關微應用配置。我們新增一個 app.ts ,用於記錄所有的微應用的入口:

然後,註冊微應用,並導出start方法

導出 start 方法之後,需要在入口處執行該方法

對於整個界面,我們希望整體的布局是這個樣子的:

所以,我們在安裝 ElementPlus 之後,需要做這樣子的布局。

首先,安裝 ElementPlus

接着,在 main.ts 引入 ElementPlus 組件,如下:

然後,創建一個布局組件 Layout.vue ,如下:

最後,在App.vue註冊該組件

運行起來呈現的效果如下:

微應用的初始化項目同主應用,這裡就不詳細說明。

微應用無需依賴 Qiankun ,這裡我們做一些配置即可。

在 src 目錄下新增一個 public-path.js 文件,內容如下:

在 main.ts 引入該文件

新增一個路由配置文件,這裡我們創建對應的路由信息,並且兼容獨立運行,內容如下:

接着,修改 main.ts 關於實例化的代碼,如下:

這裡主要是定義個渲染的方法,然後暴露Vue實例,因為等下在微應用的生命周期的鉤子會使用到。

對於微應用還需要暴露生命周期的鉤子方法,這樣子主應用才能夠識別,在 main.ts 添加如下方法:

使用 vue 創建項目是沒有 vue.config.js 文件的,這裡我們手動創建一個,並且配置相關詳細,代碼如下:

•這裡我們導入了 package.json 的 name 字段,因為這裡需要和主應用配置的 app.ts 文件的 name 字段一致 • headers 添加跨域配置,因為主應用是通過 fetch 方法來獲取微應用的資源的,而微應用是啟動在另外一個端口,所以需要添加跨域配置 • output 配置了微應用的打包格式,主應用才能正確識別微應用的一些配置

還記得我們以下這個圖不?

我認為 Header 應該是屬於主應用,而下面的 Aside 和 Main 都是屬於微應用, Aside 塊一般都是用於展示菜單,個人認為各個微應用應該各自維護自己的菜單,而不是交由主應用維護。

所以,在微應用,我們還需要處理下左側的菜單布局。

我們新增一個 Layout.vue 布局文件

至此,Vue3+TS+ElementPlus+Qiankun構建微應用項目的一個基本結構我們已經處理完成,整體運行看下效果:

首頁

微應用

好了,基於 Vue3+TS+ElementPlus+Qiankun 的微應用項目基本框架我們已經搭建好了,後續就是慢慢填充一些工具和頁面了。

相關源碼地址:

•主應用: Anyin Cloud Parent

•微應用: Anyin Cloud Base

[1] Anyin Cloud :

[2] Anyin Cloud Parent:

[3] Anyin Cloud Base:

通俗易懂講解vue.config.js的配置參數

貼上 官網

vue-cli3 創建的時候並不會自動創建vue.config.js,因為這個是個可選項,所以一般都是需要修改webpack的時候才會自己創建一個vue.config.js

再然後因為vue-cli3內部高度集成了webpack,一般來說使用者不需要再去知道weboack做了什麼,所以沒有暴露webpack的配置文件,我們可以手動去創建vue.config.js 去修改默認的webpack。注意,只能叫vue.config.js。

publicPath (從 Vue CLI 3.3 起已棄用baseUrl,請使用publicPath)

參考:

默認情況下,Vue CLI 會假設你的應用是被部署在一個域名的根路徑上,例如 。如果應用被部署在一個子路徑上,你就需要用這個選項指定這個子路徑。例如,如果你的應用被部署在 ,則設置 publicPath 為 /my-app/。

這個值在開發環境下同樣生效。如果你想把 開發服務器架設在根路徑 ,你可以使用一個條件式的值:

通常開發環境,本地運行都會直接部署在根路徑上,publicPath設置為’/’,訪問地址是你的IP地址。如下是設置成’/app’的效果:

從上面可以得知,靜態資源文件都是在app下的,所以在dist下新增添一個app目錄,把dist下文件放到app下,相當於一個文件的路徑,可以發現項目會正常啟動。一般nginx都會配置一個靜態資源目錄,打包後的文件都會放到這個靜態資源目錄裡面,nginx去做映射,所以publicPath這個屬性基本不用改。’/’就行。

結論: publicPath配置成’/aaa/bbb/ccc’, 則需在相應的服務器路徑中新建aaabbbccc的文件夾,然後將打包後的文件放進去,就ok啦。

項目中,我會在.env.production文件中設置一個變量VUE_APP_BASE_URL ,項目打包後告訴相關人員 nginx 路由前綴是什麼即可

outputDir

assetsDir

indexPath

filenameHashing

直觀效果:當運行npm run build時,

打包後的文件後面都會帶一個8位的hash值,那啥是個hash值?

在打包出來的文件名上加上文件內容的hash是目前最常見的有效使用瀏覽器長緩存的方法,js文件如果有內容更新,hash就會更新,瀏覽器請求路徑變化所以更新緩存,如果js內容不變,hash不變,直接用緩存。(這段話是從別的文章裡面參考的)。

將filenameHashing這個值設置為false試試,就不會帶那個後綴hash值。

pages

lintOnSave

runtimeCompiler

transpileDependencies

productionSourceMap

crossorigin (不理解)

integrity

configureWebpack

chainWebpack

Css相關配置

devServer

如果你的前端應用和後端 API 服務器沒有運行在同一個主機上,你需要在開發環境下將 API 請求代理到 API 服務器。這個問題可以通過 vue.config.js 中的 devServer.proxy 選項來配置。

補充知識

所謂的跨域就是不同源,不滿足協議、域名、端口都相同的約定

同源

不同源 協議不同(https)

不同源 端口不同(90)

不同源 域名不同(demo)

當協議、域名、端口中任意一個不相同時,就是不同源。若不同源之間相互請求資源,就算作跨域

補充知識

反向代理(Reverse Proxy)方式是指以代理服務器來接受網絡上的連接請求,然後將請求轉發給內部網絡上的服務器,並將服務器上得到的結果返回給請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。客戶端無需做任何配置。

修改config/index.js /vue.config.js文件(改完之後千萬記得要重新 npm run dev)

host 將他的值修改為 0.0.0.0,代表可以訪問本機所有的IP地址,讓vue項目可通過localhost和IP同時訪問。

port 設置端口號

open 是否在第一次編譯時是自動打開瀏覽器

hot 開啟為true,啟動熱重載,自動刷新頁面

https

inline

overlay

targe 代理的服務器,也就是api要訪問的服務器。

changeOrigin 允許跨域, 為false時,請求頭中host仍然是瀏覽器發送過來的host;如果設置成true:發送請求頭中host會設置成target的值

ws 是否代理websocket

pathRewrite 重寫 url 的 path 部分

此文記錄下來,方便自己遺忘的時候能夠快速查閱,如有錯誤請指出。

參考鏈接:

這篇文章講的也很詳細

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180383.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-22 05:12
下一篇 2024-11-22 05:12

相關推薦

  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • 深入理解nginx.config配置文件

    一、nginx.config文件結構 nginx是一款高性能的Web服務器,運行在Linux下,其配置文件位於“/etc/nginx/nginx.conf”。nginx.confi…

    編程 2025-04-23
  • 深入理解postcss.config.js

    一、postcss.config.js是什麼 postcss.config.js是一個JavaScript文件,它用於配置PostCSS的插件和選項。它可以被用來處理CSS,從而增…

    編程 2025-02-25
  • Python Config模塊

    一、 Config模塊概述 Python的config模塊是一個很常用的處理配置文件的庫。 Python config模塊提供了一個方便的方法來讀寫 INI 配置文件。 Pytho…

    編程 2025-01-20
  • config.json文件(configjson報錯)

    本文目錄一覽: 1、config.json是什麼文件 2、服務器參數配置文件config.json該怎麼設置 3、微信小程序(上) 4、python中四種配置文件 5、OrthoF…

    編程 2025-01-11
  • config.php配置mysql(configsamplephp)

    本文目錄一覽: 1、apache php mysql配置 2、安裝Phorum論壇時,怎樣在config.php配置mysql連接? 3、config.php文件的配置問題!! 4…

    編程 2025-01-05
  • Git查看config

    一、基本介紹 在使用git進行版本控制時,我們需要使用git config來配置全局以及項目級別的變量,比如用戶名和郵箱等。那麼如何查看已經配置好的git config呢? 首先,…

    編程 2025-01-05
  • 包含config.json門羅幣的詞條

    本文目錄一覽: 1、xml幣怎麼挖 2、config.json是什麼文件 3、如何修改遊戲mod中後綴為json的文件? xml幣怎麼挖 具體步驟如下: 門羅幣xmr挖礦需要準備兩…

    編程 2024-12-29
  • layui.config詳解

    一、layui.config什麼意思 在了解layui.config之前,我們需要先了解 layui 靜態文件加載器。它是一個簡化的資源加載器,可以自動為模塊分析和處理其依賴關係。…

    編程 2024-12-26
  • Mybatis.config-location詳解

    一、概述 Mybatis是一種優秀的簡易ORM框架,它能夠輕易地將Java對象映射到數據庫表格上,同時保留了SQL的靈活性,最大限度地減少了代碼和SQL語句之間的耦合性。在Myba…

    編程 2024-12-20

發表回復

登錄後才能評論