webpack-dev-server搭建本地服務(wù)器的實(shí)現(xiàn)
前言
當(dāng)我們使用webpack打包時(shí),發(fā)現(xiàn)每次更新了一點(diǎn)代碼,都需要重新打包,這樣很麻煩,我們希望本地能搭建一個(gè)服務(wù)器,然后寫入新的代碼能夠自動(dòng)檢測(cè)出來(lái),這時(shí)候就需要用到webpack-dev-server
webpack-deb-server
webpack提供了一個(gè)可選的本地開(kāi)發(fā)服務(wù)器,這個(gè)本地服務(wù)器基于node.js搭建,內(nèi)部使用express框架,可以實(shí)現(xiàn)我們想要的瀏覽器自動(dòng)刷新顯示我們修改后的結(jié)果
由于它是個(gè)單獨(dú)的模塊,使用之前,我們需要先安裝,命令如下:
npm install -D webpack-dev-server
安裝完成之后,我們也是需要在webpack中進(jìn)行配置,配置的對(duì)象是devServer ,它也有很多的屬性,常用的幾個(gè)屬性如下:
- contentBase:為哪一個(gè)文件提供本地服務(wù),默認(rèn)是根文件,我們這里要填寫./dist
- port:端口號(hào),默認(rèn)是8080
- inline:頁(yè)面實(shí)時(shí)刷新
- historyApiFallBack:在SPA(單頁(yè)面復(fù)應(yīng)用)頁(yè)面中,依賴HTML5的history模式
webpack.config.js配置如下:
module.exports = {
devServer: {
contentBase: "./dist",
inline: true,
},
}
接下來(lái)我們?cè)僭趐ackage.json文件中添加一條script命令:
"scripts": {
"dev": "webpack serve"
},
dev代表開(kāi)發(fā)環(huán)境,以上我們的配置就算完成了
webpack-dev-server啟動(dòng)報(bào)錯(cuò)
然后我們啟動(dòng)命令npm run dev,程序出現(xiàn)以下報(bào)錯(cuò):
Error: Cannot find module 'webpack-cli/bin/config-yargs'
原因是webpack-cli的版本問(wèn)題,我們先來(lái)看以下我們的版本
"webpack": "^5.44.0", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2"
解決方案1
降低webpack-cli的版本,從4降到3
1.卸載webpack-cli
npm uninstall webpack-cli
2.安裝webpack-cli@3
npm install webpack-cli@3 -D
然后啟動(dòng)就不會(huì)報(bào)錯(cuò)了,但是這只是臨時(shí)的解決方案,我們推薦第二種解決方式
解決方案2
更改scripts中的配置,將原來(lái)的webpack-dev-serve改為webpack serve即可
"scripts": {
"dev": "webpack serve --open --mode development"
},
最后我們?cè)诮K端輸入npm run dev就可正常啟動(dòng),并且會(huì)自動(dòng)打開(kāi)網(wǎng)頁(yè),因?yàn)槲覀兗恿藚?shù)--open,如果想手動(dòng)打開(kāi),則取出--open即可
解決端口占用問(wèn)題
如果你通過(guò)vue+webpack已經(jīng)啟動(dòng)了一個(gè)項(xiàng)目,但是你又執(zhí)行了一遍npm run dev,此時(shí)就會(huì)報(bào)以下錯(cuò)誤
Error: listen EADDRINUSE: address already in use 127.0.0.1:8080
原因是我們上次啟動(dòng)的默認(rèn)端口是8080,這次你又項(xiàng)啟動(dòng)一個(gè)項(xiàng)目端口依然是8080,但是8080端口已經(jīng)被占用了,解決辦法我們只需要將8080端口對(duì)應(yīng)的PID進(jìn)程號(hào)殺死即可
首先查找8080端口對(duì)應(yīng)的進(jìn)程ID
lsof -i:8080
找到對(duì)應(yīng)的PID后使用kill命令殺死即可
kill -9 PID進(jìn)程號(hào)
到此這篇關(guān)于webpack-dev-server搭建本地服務(wù)器 的文章就介紹到這了,更多相關(guān)webpack-dev-server搭建本地服務(wù)器 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Bootstrap 樹(shù)控件使用經(jīng)驗(yàn)分享(圖文解說(shuō))
很多項(xiàng)目中使用樹(shù)來(lái)展示層級(jí)關(guān)系,還有些樹(shù)是為了選中項(xiàng)然后其他地方調(diào)用選中項(xiàng)。今天腳本之家小編給大家?guī)?lái)了Bootstrap 樹(shù)控件使用經(jīng)驗(yàn)分享,需要的朋友參考下吧2017-11-11
JavaScript如何攔截全局Fetch的請(qǐng)求與響應(yīng)詳解
全局的fetch()方法用于發(fā)起獲取資源的請(qǐng)求,它返回一個(gè)promise,這個(gè)promise會(huì)在請(qǐng)求響應(yīng)后被resolve,并傳回Response對(duì)象,這篇文章主要給大家介紹了關(guān)于JavaScript如何攔截全局Fetch的請(qǐng)求與響應(yīng)的相關(guān)資料,需要的朋友可以參考下2024-04-04
JavaScript簡(jiǎn)單表格編輯功能實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript簡(jiǎn)單表格編輯功能實(shí)現(xiàn)方法,涉及javascript操作表格的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
JavaScript版經(jīng)典游戲之掃雷游戲完整示例【附demo源碼下載】
這篇文章主要介紹了JavaScript版經(jīng)典游戲之掃雷游戲?qū)崿F(xiàn)方法,結(jié)合完整實(shí)例形式分析了掃雷游戲的原理與具體實(shí)現(xiàn)流程,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-12-12
jquery 實(shí)現(xiàn)上下滾動(dòng)效果示例代碼
上下滾動(dòng)的效果,不用說(shuō),大家都有看到過(guò),本文為大家介紹下使用jquery實(shí)現(xiàn)上下滾動(dòng)效果,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
JavaScript獲取數(shù)據(jù)類型的方法詳解
這篇文章給大家介紹了JavaScript獲取數(shù)據(jù)類型的方法,文中所介紹的所有知識(shí)點(diǎn)、代碼示例以及提供的解決方案,均不考慮?IE?瀏覽器,僅支持最新版本的?Chrome、Firefox、Edge?和?Safari?瀏覽器,需要的朋友可以參考下2024-02-02
解析為什么axios會(huì)有params和data兩個(gè)參數(shù)
本文給大家分享為什么axios會(huì)有params和data兩個(gè)參數(shù),先來(lái)回顧一下axios的基本使用,怎么發(fā)送一個(gè)請(qǐng)求,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2023-10-10
JS創(chuàng)建對(duì)象的十種方式總結(jié)
面向?qū)ο笫且环N重要的編程范式,如何靈活的創(chuàng)建對(duì)象,是對(duì)編程基本功的考驗(yàn),本來(lái)我們來(lái)探討一下JavaScript中創(chuàng)建對(duì)象的十種方式,感興趣的小伙伴可以了解下2023-10-10

