vue.config.js里面的devserver如何配置
vue.config.js的devserver配置方式
以下是 vue.config.js
中 devServer
的常見配置方式,以及不同配置項(xiàng)的解釋和使用場景:
1. 基本配置
在 Vue 項(xiàng)目中,vue.config.js
是一個(gè)可選的配置文件,用于自定義 Vue CLI 的內(nèi)部 Webpack 配置。
以下是一個(gè)簡單的 devServer
配置示例:
module.exports = { devServer: { port: 8080, // 開發(fā)服務(wù)器的端口號(hào) open: true, // 項(xiàng)目啟動(dòng)時(shí)自動(dòng)打開瀏覽器 overlay: { warnings: false, errors: true // 在瀏覽器中顯示錯(cuò)誤信息 } } };
解釋:
port
:指定開發(fā)服務(wù)器運(yùn)行的端口號(hào)。如果不設(shè)置,默認(rèn)為 8080。open
:設(shè)置為true
時(shí),項(xiàng)目啟動(dòng)時(shí)會(huì)自動(dòng)打開瀏覽器并訪問開發(fā)服務(wù)器的頁面。overlay
:控制是否在瀏覽器頁面上覆蓋顯示警告和錯(cuò)誤信息。將errors
設(shè)置為true
會(huì)在頁面上顯示編譯錯(cuò)誤,方便開發(fā)時(shí)快速定位問題。
2. 代理配置
使用 devServer
配置代理是解決開發(fā)環(huán)境中跨域問題的常用方法。
假設(shè)你需要將 /api
開頭的請求代理到 http://localhost:3000
上的后端服務(wù)器,可以這樣配置:
module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:3000', // 目標(biāo)服務(wù)器地址 changeOrigin: true, // 修改請求頭中的 Origin 信息 pathRewrite: { '^/api': '' // 重寫請求路徑,將 /api 替換為空 } } } } };
解釋:
proxy
:設(shè)置請求代理。'/api'
:匹配以/api
開頭的請求路徑。target
:將請求代理到的目標(biāo)服務(wù)器地址。changeOrigin
:將請求頭中的Origin
字段修改為目標(biāo)服務(wù)器的地址,有助于繞過某些服務(wù)器的同源策略限制。pathRewrite
:重寫請求路徑,這里將/api
前綴去掉,使請求路徑符合后端 API 的實(shí)際情況。
3. 熱模塊替換(HMR)
啟用熱模塊替換可以在不刷新頁面的情況下更新代碼,提升開發(fā)體驗(yàn):
module.exports = { devServer: { hot: true, // 啟用熱模塊替換 hotOnly: true // 只使用熱更新,不刷新頁面 } };
解釋:
hot
:啟用熱模塊替換。hotOnly
:當(dāng)熱模塊替換失敗時(shí),不刷新頁面,避免頁面刷新導(dǎo)致的數(shù)據(jù)丟失或狀態(tài)重置。
4. 靜態(tài)資源服務(wù)
可以配置 devServer
來處理靜態(tài)資源服務(wù):
module.exports = { devServer: { contentBase: './public', // 靜態(tài)資源的目錄 watchContentBase: true // 監(jiān)聽靜態(tài)資源目錄的變化 } };
解釋:
contentBase
:指定靜態(tài)資源的目錄,默認(rèn)為public
目錄。watchContentBase
:設(shè)置為true
時(shí),當(dāng)靜態(tài)資源目錄中的文件發(fā)生變化時(shí),開發(fā)服務(wù)器會(huì)重新加載。
5. 啟用 HTTPS
如果需要在開發(fā)環(huán)境中使用 HTTPS,可以配置 devServer
如下:
const fs = require('fs'); const path = require('path'); module.exports = { devServer: { https: { key: fs.readFileSync(path.join(__dirname, 'key.pem')), // 私鑰文件 cert: fs.readFileSync(path.join(__dirname, 'cert.pem')) // 證書文件 } } };
解釋:
https
:使用 HTTPS 協(xié)議,需要提供私鑰和證書文件。
6. 配置多個(gè)代理
如果你需要將不同的請求代理到不同的后端服務(wù)器,可以使用多個(gè)代理配置:
module.exports = { devServer: { proxy: { '/api1': { target: 'http://localhost:3001', changeOrigin: true }, '/api2': { target: 'http://localhost:3002', changeOrigin: true } } } };
7. 其他配置
還可以配置其他 devServer
選項(xiàng),如 headers
用于設(shè)置響應(yīng)頭,compress
用于啟用 Gzip 壓縮:
module.exports = { devServer: { headers: { 'Access-Control-Allow-Origin': '*' // 允許跨域請求 }, compress: true // 啟用 Gzip 壓縮 } };
心得:
vue.config.js
中的 devServer
配置項(xiàng)非常靈活,可以根據(jù)開發(fā)需求進(jìn)行各種定制。
以下是一個(gè)綜合的 vue.config.js
示例:
const fs = require('fs'); const path = require('path'); module.exports = { devServer: { port: 8080, open: true, overlay: { warnings: false, errors: true }, proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true, pathRewrite: { '^/api': '' } } }, hot: true, hotOnly: true, contentBase: './public', watchContentBase: true, https: { key: fs.readFileSync(path.join(__dirname, 'key.pem')), cert: fs.readFileSync(path.join(__dirname, 'cert.pem')) }, headers: { 'Access-Control-Allow-Origin': '*' }, compress: true } };
總結(jié)
以上就是 vue.config.js
中 devServer
的常見配置,你可以根據(jù)項(xiàng)目的實(shí)際需求進(jìn)行選擇和修改,以滿足開發(fā)過程中的不同需求。
這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用drag與drop實(shí)現(xiàn)拖拽的示例代碼
本篇文章主要介紹了vue使用drag與drop實(shí)現(xiàn)拖拽的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09解決vue2使用腳手架配置prettier報(bào)錯(cuò)prettier/prettier:context.getPhysical
這篇文章主要介紹了解決vue2使用腳手架配置prettier報(bào)錯(cuò)prettier/prettier:context.getPhysicalFilename is not a function問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Vue.js 時(shí)間轉(zhuǎn)換代碼及時(shí)間戳轉(zhuǎn)時(shí)間字符串
這篇文章主要介紹了Vue.js 時(shí)間轉(zhuǎn)換代碼及時(shí)間戳轉(zhuǎn)時(shí)間字符串,需要的朋友可以參考下2018-10-10Vue?狀態(tài)存儲(chǔ)和會(huì)話存儲(chǔ)同步清空問題解決方案(最新推薦)
文章介紹了在使用Pinia定義的useHeaderTabStore中,tab狀態(tài)通過會(huì)話存儲(chǔ)初始化但未在退出登錄時(shí)同步清空的問題,通過在PiniaStore中定義清空tab的函數(shù),并在退出登錄時(shí)調(diào)用該函數(shù),可以確保狀態(tài)和會(huì)話存儲(chǔ)同步清空,避免內(nèi)存中殘留舊數(shù)據(jù),感興趣的朋友一起看看吧2024-12-12vue項(xiàng)目同時(shí)兼容pc和移動(dòng)端的解決方式
我們經(jīng)常在項(xiàng)目中會(huì)有支持pc與手機(jī)端需求,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目同時(shí)兼容pc和移動(dòng)端的解決方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10