怎么在webpack3.0中配置webpack-dev-server?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
措勤ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!webpack以及自己需要使用的loader和plugins,由于webpack-dev-server是個(gè)獨(dú)立的npm包,所以我們需要在npm下安裝它:
npm install webpack-dev-server --save-dev
之后我們就可以在webpack.config.js中進(jìn)行配置:
const path = require("path"); module.exports = { entyr:{ ....... //設(shè)置入口文件 }, output:{ ....... //設(shè)置出口文件 }, module:{ ....... //配置loader,注意使用rules而不是loaders }, plugins:[ ....... //注意是數(shù)組 ], devServer:{ //我們?cè)谶@里對(duì)webpack-dev-server進(jìn)行配置 } }
devServer中常用的配置對(duì)象屬性如下:
1. contentBase:"./" // 本地服務(wù)器在哪個(gè)目錄搭建頁(yè)面,一般我們?cè)诋?dāng)前目錄即可;
2. historyApiFallback:true // 當(dāng)我們搭建spa應(yīng)用時(shí)非常有用,它使用的是HTML5 History Api,任意的跳轉(zhuǎn)或404響應(yīng)可以指向 index.html頁(yè)面;
3. inline:true // 用來(lái)支持dev-server自動(dòng)刷新的配置,webpack有兩種模式支持自動(dòng)刷新,一種是iframe模式,一種是inline模式;使用iframe模式是不需要在devServer進(jìn)行配置的,只需使用特定的URL格式訪問(wèn)即可;不過(guò)我們一般還是常用inline模式,在devServer中對(duì)inline設(shè)置為true后,當(dāng)我們啟動(dòng)webpack-dev-server時(shí)仍要需要配置inline才能生效,這一點(diǎn)我們之后再說(shuō);
4. hot:true // 啟動(dòng)webpack熱模塊替換特性,這里也是坑最多的地方,不少博客都將hot設(shè)置了true,我們姑且也設(shè)置為true,之后再看;
5. port:端口號(hào)(默認(rèn)8080) // 這就不用我多說(shuō)了吧;
事實(shí)上大概常用的配置也就這樣,為了方便,我們?cè)趐ackjson中對(duì)webpack-dev-server的的啟動(dòng)進(jìn)行一下設(shè)置:
"scripts": { ...... ...... "start":"webpack-dev-server --inline" },
別忘了在devServer中設(shè)置inline:true后這里也要設(shè)置一下!
這時(shí)我們打包后再運(yùn)行服務(wù)器后應(yīng)該發(fā)現(xiàn)index.html頁(yè)面已經(jīng)展示了,打包好后的js文件雖然出現(xiàn)在了src上,但并沒有顯示,打開控制臺(tái)會(huì)發(fā)現(xiàn)如下報(bào)錯(cuò):
控制臺(tái)顯示:Hot Module Replacement is disabled;
奇怪?我們之前不是在devServer中設(shè)置了hot為true了嗎?事實(shí)上,雖然不知道為什么,但是目前來(lái)說(shuō)hot這個(gè)屬性已經(jīng)沒有用了,使用熱模塊的話我們需要用到一個(gè)叫webpack.HotModuleReplacementPlugin的插件。所以我們的webpack.config.js需要加上這些:
const path = require("path"); const webpack = requier ("webpack"); module.exports = { entyr:{ ....... //設(shè)置入口文件 }, output:{ ....... //設(shè)置出口文件 }, module:{ ....... //配置loader,注意使用rules而不是loaders }, plugins:[ new webpack.HotModuleReplacementPlugin() ....... //注意是數(shù)組 ], devServer:{ contentBase: "./", historyApiFallback:true, inline:true, hot:true } }
這時(shí)我們?cè)僭赽ash上運(yùn)行npm run start后發(fā)現(xiàn)服務(wù)器就搭建完成了!
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。