摘要:以前看或者做開發(fā)的時(shí)候,常常看到。看介紹是一個(gè)基于框架的小服務(wù),通過來處理這個(gè)打包機(jī)小查了一下,的作用是把打包成中間件。原理大致清楚了,還可以根據(jù)需求選不同的模式事不宜遲,趕緊試試吧。那么是如何引進(jìn)來的呢所以說,是生成在內(nèi)存中的。
以前看demo或者做開發(fā)的時(shí)候,常常看到webpack-dev-server。
這邊敲代碼,同時(shí)刷新瀏覽器,真是nice!
但是自己卻沒有了解學(xué)習(xí)過它是怎一回事,直接就著用。導(dǎo)致現(xiàn)在覺得不把這個(gè)東西吃一吃,渾身不自在!
原理是什么
這么神奇的東西的原理是什么,作為小白開發(fā)者當(dāng)然很好奇。
看介紹http://webpack.github.io/docs...
webpack-dev-server是一個(gè)基于express框架的nodejs小服務(wù),通過webpack-dev-middleware來處理webpack這個(gè)打包機(jī)(小walker查了一下,webpack-dev-middleware的作用是把webpack打包成中間件)。它也有一個(gè)連接這個(gè)服務(wù)的小運(yùn)行環(huán)境,經(jīng)由sock.js實(shí)現(xiàn)(sock.js小walker查了一下,是一個(gè)js庫(kù),可用作創(chuàng)建跨瀏覽器的,瀏覽器和服務(wù)器間的通信信道)。
原理大致清楚了,還可以根據(jù)需求選不同的模式?事不宜遲,趕緊試試吧。
嘗試代碼的github地址https://github.com/WalkerZyy/...
Try No.1 hello world
文件目錄:
package.json:
配置webpack.config.js:
參考著官網(wǎng)寫了個(gè)服務(wù):
由于unshift進(jìn)dev的那串代碼意義不明,所以先注釋了,后面再研究
dev中的main.js:
helloworld.html:
package.json中加命令
瀏覽器中看結(jié)果:
好了,成功了,但是還是有些小疑惑,下面一點(diǎn)點(diǎn)來扣
首先,參數(shù)解讀之contentBase
The webpack-dev-server will serve the files in the current directory, unless you configure a specific content base.
也就是說,服務(wù)會(huì)默認(rèn)一個(gè)網(wǎng)站目錄,如果我不填這個(gè)參數(shù),相當(dāng)于
contentBase:"./"
瀏覽器訪問結(jié)果:
現(xiàn)象觀察,生成的index.js在哪里
我的helloworld.html里引入了編譯后的index.js,但是bin目錄里并沒有,任何目錄里都沒有。那么是如何引進(jìn)來的呢?
所以說,是生成在內(nèi)存中的。
描述中,有個(gè)publicPath,這時(shí)候我如果添加publicPath,也就是“/assets/”
取不到了
改為:
就ok了
另外如英語(yǔ)描述,打包是實(shí)時(shí)的,我加個(gè)新感嘆號(hào)
就看到又打包了,刷新網(wǎng)頁(yè):
自動(dòng)刷新
剛才沒有自動(dòng)刷新的,因?yàn)闆]有配
自動(dòng)刷新有兩種模式Inline 和iframe
最終效果都一樣
參考http://blog.csdn.net/chengnuo...
這兩種模式,官網(wǎng)都有講
webpack-dev-server的啟動(dòng)模式有兩種
node Api模式和cmd模式
之前注釋掉的下面這段代碼就是配置nodejs Api形式的inline模式
Hot Module Replacement
熱替換是什么
參考https://segmentfault.com/a/11...
命令行方式的做法先略去,直接看node.js Api的做法
按照官網(wǎng)的做法
public地址不對(duì)會(huì)有跨域報(bào)錯(cuò)
熱替換原來也是要刷新頁(yè)面的嗎?
https://segmentfault.com/a/11...
https://segmentfault.com/q/10...
所以說,熱替換是給可以熱替換的模塊用的
好了,不糾結(jié)了,先寫這么多
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/81454.html
摘要:處理文件的擴(kuò)展名很多的配置文件都有一個(gè)屬性,然后就像下面代碼所示有一個(gè)空字符串的值。空字符串在此是為了一些在文件時(shí)不帶文件擴(kuò)展名的表達(dá)式,如或者譯者注實(shí)際就是自動(dòng)添加后綴,默認(rèn)是當(dāng)成文件來查找路徑就這么多。 原文 Webpack—The Confusing Partsissue討論 Webpack是目前基于React和Redux開發(fā)的應(yīng)用的主要打包工具。我想使用Angular 2或其他...
摘要:是一個(gè)和差不多同時(shí)代的產(chǎn)物,但是它只支持基于,對(duì)于來說只能興嘆了。找一個(gè)自己順手的就好,順便一提,我現(xiàn)在主要使用輔助。 說到自動(dòng)化構(gòu)建,你想到了什么?基于AMD的requirejs?還是基于commoJS的browserify?他們都在各自的領(lǐng)域或者說時(shí)代發(fā)揮了很重要的作用。但是時(shí)代的變遷,webpack成了現(xiàn)在的佼佼者,我們不知道什么時(shí)候wepback也會(huì)被取代,但是現(xiàn)在我們必須要掌...
摘要:而則可制定個(gè)人需求的一套解決方案僅安裝需要的插件。迫不及待的你已經(jīng)等不及安裝使用了吧。安裝及使用一般是結(jié)合自動(dòng)化工具使用,如果要單獨(dú)使用可以安裝,這里我先對(duì)的安裝使用講解下。接下來說點(diǎn)實(shí)際的,如何利用結(jié)合自動(dòng)化工作在項(xiàng)目中使用。 PostCSS介紹 PostCSS是一個(gè)利用JS插件來對(duì)CSS進(jìn)行轉(zhuǎn)換的工具,這些插件非常強(qiáng)大,強(qiáng)大到無所不能。其中,Autoprefixer就是眾多Post...
摘要:譯文原文來自寫在前面使用已經(jīng)蠻長(zhǎng)一段時(shí)間但是在新項(xiàng)目開始之際都是東拼西湊其他項(xiàng)目的配置來使用如果要自己從零開始寫一個(gè)完整項(xiàng)目的配置估計(jì)得費(fèi)死勁所以在發(fā)布版本之際正是時(shí)候來認(rèn)真從零開始學(xué)習(xí)了是一個(gè)出自的庫(kù)用于構(gòu)建用戶交互界面是一個(gè)非常厲害的有 譯文,原文來自https://scotch.io/tutorials/s...寫在前面,使用webpack已經(jīng)蠻長(zhǎng)一段時(shí)間,但是在新項(xiàng)目開始之際,...
摘要:介紹說明的包管理器,用于插件管理包括安裝卸載管理依賴等使用安裝插件命令提示符執(zhí)行插件名稱。總結(jié)安裝新建文件全局和本地安裝安裝插件新建文件通過命令提示符運(yùn)行任務(wù)。 showImg(https://segmentfault.com/img/remote/1460000010873466); 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同,本...
閱讀 1721·2021-11-22 15:33
閱讀 2097·2021-10-08 10:04
閱讀 3549·2021-08-27 13:12
閱讀 3425·2019-08-30 13:06
閱讀 1474·2019-08-29 16:43
閱讀 1399·2019-08-29 16:40
閱讀 790·2019-08-29 16:15
閱讀 2749·2019-08-29 14:13