多端瀏覽器同步調(diào)試工具:browserSync與webpack的結(jié)合

天氣越來越冷,我剛買的毛線手套在今中午騎ofo單車時(shí)候都快有點(diǎn)頂不住了惨篱,問我為什么中午出去騎單車盏筐,因?yàn)槲液臀腋绺缂s了一頓寬板凳火鍋。很久沒吃火鍋了砸讳,果斷騎車20分鐘去約飯琢融,回來時(shí)候心滿意足界牡,邊騎車邊想,不如做一套針對ofo共享單車的共享車鎖密碼應(yīng)用漾抬,每次使用完單車后順手上傳車牌號和密碼宿亡,反正每輛車都是固定密碼的,以后大家用車就可以先通過車牌查詢有無對應(yīng)的密碼共享出來纳令,這才是真正的共享經(jīng)濟(jì)嘛挽荠。哈哈,不過這種事也就是想想罷了平绩,就像當(dāng)初12306網(wǎng)站的登錄注冊都存在著sql注入漏洞圈匆,但是也沒有人敢去搞一搞,有些事還是想想就夠了捏雌。酒足飯飽跃赚,回到工位,還是趁熱乎把昨天說的盡快落實(shí)一下吧...

1. 先說說使用背景

說起前端開發(fā)性湿,不得不說現(xiàn)在如火如荼的移動端H5纬傲,從朋友圈廣泛傳播的各種酷炫活動頁到現(xiàn)在各大App應(yīng)用中內(nèi)嵌的移動端H5網(wǎng)頁,都屬于移動端網(wǎng)頁的開發(fā)肤频。但是作為一名前端開發(fā)者叹括,實(shí)際在開發(fā)移動端頁面的時(shí)候,真機(jī)調(diào)試是一個很頭疼的問題着裹,因?yàn)橐苿佣隧撁娌幌馪C端頁面那樣能直接用電腦瀏覽器雙擊打開 *.html 文件來瀏覽調(diào)試领猾,最最笨的方法就是將正在開發(fā)中的文件通過數(shù)據(jù)線從電腦拷貝到手機(jī),然后手機(jī)打開html文件預(yù)覽骇扇。當(dāng)然這種非人類的辦法效率實(shí)在是極其低下也很難以啟齒...所以我們要想一個辦法,能做到十分省時(shí)省力的就能在手機(jī)上預(yù)覽甚至調(diào)試到我們正在開發(fā)的移動端頁面面粮。
記得去年畢業(yè)進(jìn)入我的上家公司少孝,當(dāng)時(shí)的我一問三不知,我的導(dǎo)師組長引領(lǐng)了我一年的成長之路熬苍,這一年多我學(xué)會了很多稍走,很感激這一年來公司給我提供的成長環(huán)境,和那一堆給予我?guī)椭耐虏竦住Q詺w正傳婿脸,剛來公司首先要做的就是熟悉公司的開發(fā)模式,經(jīng)過組長給我的講解柄驻,我明白了我們的大概開發(fā)流程狐树,我們的工程框架用的是fis || grunt,我們在本地開發(fā)并編譯好代碼文件鸿脓,同時(shí)會運(yùn)行一個腳本抑钟,在每次保存本地代碼時(shí)涯曲,腳本會把編譯好的代碼文件push到我們每個人配置好的開發(fā)機(jī)服務(wù)器上,同時(shí)對應(yīng)一個個人測試域的url在塔,在內(nèi)網(wǎng)里訪問這個url就可以訪問我們正在開發(fā)的頁面幻件,這樣就實(shí)現(xiàn)了邊開發(fā),手機(jī)通過一個url就可以實(shí)時(shí)邊訪問頁面了蛔溃。但是這種很大工程化流程在我們自己私下想搭環(huán)境時(shí)候就不好搞了绰沥,最起碼我搞不來。
因?yàn)楫?dāng)時(shí)我們的是用git進(jìn)行代碼管理的贺待,所以我又想可以通過git來同步我的代碼揪利,生成一個url來訪問,就是每次還得git push上傳代碼狠持,也是有點(diǎn)繁瑣疟位。
后來現(xiàn)在的同事給我推薦了browserSync,一頭霧水的我查了一下喘垂,不查不知道甜刻,一查驚呆了,世間還有這等神器正勒!官網(wǎng)首頁的幾句話就把我深深吸引住了得院,如獲至寶,于是研究了一下章贞,起初不依賴什么框架就是在外面單純的跑腳本祥绞,沒問題,很強(qiáng)大鸭限,后來又把它集成到了gulp里蜕径,但是后來我決定放棄剛用了一次的gulp,轉(zhuǎn)投webpack败京,幸運(yùn)的是兜喻,webpack也很強(qiáng)大地支持browserSync,喜大普奔赡麦。
好了朴皆,廢話了這么多,其實(shí)在webpack中使用browserSync也很簡單泛粹,就是在上篇文章《webpack從安裝到起飛》中提到的webpack.config.js中配置一下就好了遂铡,那么我們先從頭說一下browserSync是個什么東東。

2. 初識browserSync

正如標(biāo)題所說晶姊,它是一個省時(shí)的瀏覽器同步測試工具扒接,借用一下官方的介紹:

Browsersync能讓瀏覽器實(shí)時(shí)、快速響應(yīng)您的文件更改(html、js珠增、css超歌、sass、less等)并自動刷新頁面蒂教。更重要的是** Browsersync可以同時(shí)在PC巍举、平板、手機(jī)等設(shè)備下進(jìn)項(xiàng)調(diào)試**凝垛。您可以想象一下:“假設(shè)您的桌子上有pc懊悯、ipad、iphone梦皮、android等設(shè)備炭分,同時(shí)打開了您需要調(diào)試的頁面,當(dāng)您使用browsersync后剑肯,您的任何一次代碼保存捧毛,以上的設(shè)備都會同時(shí)顯示您的改動”。無論您是前端還是后端工程師让网,使用它將提高您30%的工作效率呀忧。


Browsersync

有了它,您不用在多個瀏覽器溃睹、多個設(shè)備間來回切換而账,頻繁的刷新頁面。更神奇的是您在一個瀏覽器中滾動頁面因篇、點(diǎn)擊等行為也會同步到其他瀏覽器和設(shè)備中泞辐,這一切還可以通過可視化界面來控制。


Browsersync

看到這里竞滓,我們就知道了咐吼,是它,是它虽界,就是它汽烦,它就是我一直在尋找的最優(yōu)解決方案——Browsersync。

3. Browsersync的基本使用

對于Browsersync的用法莉御,我不在用自己的話描述了,官方的文檔說的很詳細(xì)很好俗冻,這里就直接引用了:

  1. 安裝 Node.js
    BrowserSync是基于Node.js的, 是一個Node模塊礁叔, 如果您想要快速使用它,也許您需要先安裝一下Node.js 安裝適用于Mac OS迄薄,Windows和Linux琅关。
  1. 安裝 BrowserSync
    您可以選擇從Node.js的包管理(NPM)庫中 安裝BrowserSync。打開一個終端窗口,運(yùn)行以下命令:
    npm install -g browser-sync
    您告訴包管理器下載BrowserSync文件涣易,并在全局下安裝它們画机,您可以在所有項(xiàng)目(任何目錄)中使用。
    當(dāng)然您也可以結(jié)合gulpjs或gruntjs構(gòu)建工具來使用新症,在您需要構(gòu)建的項(xiàng)目里運(yùn)行下面的命令:
    npm install --save-dev browser-sync
  2. 啟動 BrowserSync
    一個基本用途是步氏,如果您只希望在對某個css
    文件進(jìn)行修改后會同步到瀏覽器里。那么您只需要運(yùn)行命令行工具徒爹,進(jìn)入到該項(xiàng)目(目錄)下荚醒,并運(yùn)行相應(yīng)的命令:
    靜態(tài)網(wǎng)站
    如果您想要監(jiān)聽.css
    文件, 您需要使用服務(wù)器模式。 BrowserSync 將啟動一個小型服務(wù)器隆嗅,并提供一個URL來查看您的網(wǎng)站界阁。
    // --files 路徑是相對于運(yùn)行該命令的項(xiàng)目(目錄) browser-sync start --server --files "css/\.css"
    如果您需要監(jiān)聽多個類型的文件,您只需要用逗號隔開胖喳。例如我們再加入一個.html
    文件
    // --files 路徑是相對于運(yùn)行該命令的項(xiàng)目(目錄) browser-sync start --server --files "css/\
    .css, \.html"http:// 如果你的文件層級比較深泡躯,您可以考慮使用 \\(表示任意目錄)匹配,任意目錄下任意.css 或 .html文件丽焊。 browser-sync start --server --files "\\/\.css, \\/\.html"
    我們做了一個靜態(tài)例子的示范较剃,您可以下載示例包,文件您可以解壓任何盤符的任何目錄下粹懒,不能是中文路徑重付。打開您的命令行工具,進(jìn)入到BrowsersyncExample目錄下凫乖,運(yùn)行以下其中一條命令确垫。Browsersync將創(chuàng)建一個本地服務(wù)器并自動打開你的瀏覽器后訪問http://localhost:3000地址,這一切都會在命令行工具里顯示帽芽。你也可以查看Browsersync靜態(tài)示例視頻
    // 監(jiān)聽css文件 browser-sync start --server --files "css/\
    .css"http:// 監(jiān)聽css和html文件 browser-sync start --server --files "css/\.css, \.html"
    動態(tài)網(wǎng)站
    如果您已經(jīng)有其他本地服務(wù)器環(huán)境PHP或類似的删掀,您需要使用代理模式。 BrowserSync將通過代理URL(localhost:3000)來查看您的網(wǎng)站导街。
    // 主機(jī)名可以是ip或域名browser-sync start --proxy "主機(jī)名" "css/\.css"
    在本地創(chuàng)建了一個PHP服務(wù)器環(huán)境披泪,并通過綁定Browsersync.cn來訪問本地服務(wù)器,使用以下命令方式搬瑰,Browsersync將提供一個新的地址localhost:3000來訪問Browsersync.cn款票,并監(jiān)聽其css目錄下的所有css文件。
    browser-sync start --proxy "Browsersync.cn" "css/\
    .css"
    一點(diǎn)建議
    我們建議您結(jié)合gulp或grunt來使用泽论,我們這里有詳細(xì)說明Gulp文檔艾少、Grunt文檔。如果您還沒有使用gulp或grunt翼悴,那么可以通過以上方式創(chuàng)建Browsersync

到此為止缚够,我們基本可以脫離或者依賴gulp||grunt來使用browsersync了,比如在gulp中,我們在gulpfiles.js中配置好了browsersync谍椅,執(zhí)行g(shù)ulp watch误堡,就會直接調(diào)起browsersync服務(wù),我們在命令行可以看到PC和移動端對應(yīng)的url訪問地址雏吭,值得注意的是锁施,browsersync會默認(rèn)尋找根目錄下的index.html文件,有則執(zhí)行思恐,無則報(bào)錯沾谜,如果我們想訪問目錄下的其他文件,只需要在url后面加上相應(yīng)的路徑地址即可胀莹。
比如:http://localhost:3000/app/index.html
那么我們?nèi)绾卧趙ebpack中使用browserSync呢基跑,官方文檔只給了gulp和grunt的集成方式,接下來看看browsersync在webpack中怎么配置描焰。

4. webpack中的browsersync

還是找到我們上一個文件項(xiàng)目媳否,打開webpack.config.js備用。

依然打開命令行終端荆秦,進(jìn)入項(xiàng)目根目錄篱竭,執(zhí)行
npm install browser-sync-webpack-plugin --save-dev 來安裝browsersync插件
安裝完畢,package.json中也顯示了安裝完畢后的依賴項(xiàng):
"extract-text-webpack-plugin": "^1.0.1",

接下來就是配置webpack.config.js了步绸,
首先引入插件:var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
然后再 plugins 配置項(xiàng)中配置:

new BrowserSyncPlugin({
        host: 'localhost',
        port: 3000,
        files: '',
        server: {
            //指定服務(wù)器啟動根目錄
            baseDir: './'
        }
})

基本這么一配置掺逼,就ok了,似不似很簡單瓤介,似不似很開熏...
然后我們直接 webpack -w 就發(fā)現(xiàn)瀏覽器自動打開了吕喘,默認(rèn)訪問了http://localhost:3000/
我們根據(jù)要訪問的文件路徑,補(bǔ)充好url后續(xù)刑桑,就可以開心的開發(fā)了氯质,你會發(fā)現(xiàn)每次一保存代碼,瀏覽器就自動刷新祠斧,不管是PC端還是移動端闻察,而且在一端滾動頁面,另一端也會同步滾動琢锋,感覺屌爆了辕漂。
好了,這么神奇的東西就這樣為我們所用了吴超。開心钮热。

5. 最后

這次編輯文章用的 markDown語法,簡直比昨天用的富文本不能再好了烛芬,程序員寫文檔神器,雖然之前我組長就讓我寫,但是我懶啊赘娄,沒寫仆潮,現(xiàn)在還是用到了,所以說要學(xué)習(xí)的地方還是很多啊小伙子遣臼。
今天過得好快性置,下一個項(xiàng)目也要來了,坐等...
886我要準(zhǔn)備下班了揍堰,今晚還要去健身房差點(diǎn)忘了…
對了鹏浅,接下來會記錄一下webpack+vue的組件模塊化開發(fā)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屏歹,一起剝皮案震驚了整個濱河市隐砸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝙眶,老刑警劉巖季希,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異幽纷,居然都是意外死亡式塌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門友浸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來峰尝,“玉大人,你說我怎么就攤上這事收恢∥溲В” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵派诬,是天一觀的道長劳淆。 經(jīng)常有香客問我,道長默赂,這世上最難降的妖魔是什么沛鸵? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮缆八,結(jié)果婚禮上曲掰,老公的妹妹穿的比我還像新娘。我一直安慰自己奈辰,他們只是感情好栏妖,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奖恰,像睡著了一般吊趾。 火紅的嫁衣襯著肌膚如雪宛裕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天论泛,我揣著相機(jī)與錄音揩尸,去河邊找鬼。 笑死屁奏,一個胖子當(dāng)著我的面吹牛岩榆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坟瓢,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼勇边,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了折联?” 一聲冷哼從身側(cè)響起粒褒,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崭庸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怕享,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡执赡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年函筋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跌帐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片究履。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡炊甲,死狀恐怖泥彤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卿啡,我是刑警寧澤吟吝,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站颈娜,受9級特大地震影響剑逃,放射性物質(zhì)發(fā)生泄漏浙宜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一炕贵、第九天 我趴在偏房一處隱蔽的房頂上張望梆奈。 院中可真熱鬧,春花似錦称开、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扶镀,卻和暖如春蕴侣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臭觉。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工昆雀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝠筑。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓狞膘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親什乙。 傳聞我的和親對象是個殘疾皇子挽封,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 原文標(biāo)題:Gulp for Beginners作者: Zell Liew翻譯:治電小白菜原文地址:https://...
    ZZES_ZCDC閱讀 1,584評論 6 18
  • 參照Gulp for Beginners來學(xué)習(xí)Gulp基本內(nèi)容。以下為學(xué)習(xí)記錄筆記臣镣。 安裝Gulp 首先需要安裝N...
    JenniferYe閱讀 2,542評論 1 17
  • 安裝Gulp首先需要安裝Node.js辅愿,并在控制臺輸入$ npm install gulp -gMac端需要寫成$...
    LaBaby_閱讀 927評論 0 1
  • 在現(xiàn)在的前端開發(fā)中,前后端分離忆某、模塊化開發(fā)点待、版本控制、文件合并與壓縮弃舒、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,448評論 1 32
  • 相關(guān)鏈接:Browsersync官網(wǎng)Browsersync中文網(wǎng) 前言:1分鐘快速使用 Browsersync 下...
    AlessiaLi閱讀 3,127評論 0 5