鎼缓webpack鐜鍒涘缓椤圭洰mkdirdev-erver&&cddev-servernpminit-y//蹇€熷垱寤洪」鐩厤缃畁pmiwebpack-dev-serverwebpack-cli--save-devmkdirsrc//鍒涘缓璧勬簮鐩綍mkdirdist//杈撳嚭鐩綍touchwebpack.dev.js//鍥犱负鍦ㄥ紑鍙戠幆澧冮渶瑕佺儹鏇存柊锛屾墍浠ョ洿鎺ュ垱寤篸ev閰嶇疆鏂囦欢鐩綍缁撴瀯webpack鐗堟湰杩欓噷璇存槑涓€涓嬶紝webpack4鍜寃ebpack5鐨勯厤缃俊鎭垨鑰呮樉绀轰俊鎭彲鑳戒細鐣ユ湁涓嶅悓"devDependencies":{"webpack":"^5.74.0","webpack-cli":"^4.10.0","webpack-dev-server":"^4.9.3"}鍐欓厤缃枃浠?/webpack.dev.js'usestrict';constpath=require('璺緞');module.exports={entry:'./src/index.js',//鍏ュ彛鏂囦欢output:{path:path.resolve(__dirname,'dist'),//杈撳嚭鍒板摢涓枃浠跺すfilename:'output.js'//杈撳嚭鏂囦欢鍚峿,mode:'development',//寮€鍙戞ā寮廳evServer:{//contentBase:path.resolve(__dirname,'dist')//contentBase鐢ㄤ簬鎸囧畾璁块棶鐨刪tml椤甸潰鎵€鍦ㄧ殑鐩綍浣嶄簬;//浣嗘槸鎴戞湰鍦版姤閿欎簡锛屼娇鐢ㄤ笅闈㈢殑璇彞static:path.resolve(__dirname,"dist")}};鏂版枃浠?/src/index.js'usestrict'document.write('helloworld~')package.json娣诲姞鍛戒护"scripts":{"test":"echo\"Error:notestspecified\"&&exit1","dev":"webpack-dev-server--configwebpack.dev.js--open"},杩愯npmrundev鐪嬪埌鏂囦欢宸茬粡鎵撳寘濂戒簡锛屼絾鏄湪dist鐩綍涓嬬湅涓嶅埌鏂囦欢锛岃繖涓槸鍥犱负WDS鏄妸缂栬瘧鍚庣殑鏂囦欢鏀惧埌缂撳瓨閲岋紝鑰屼笉鏄斁鍒扮鐩樹笂锛屼絾鏄垜浠彲浠ヨ闂紝output.js瀵瑰簲浣爓ebpack閰嶇疆鏂囦欢涓殑杈撳嚭鏂囦欢锛屼綘閰嶇疆浠€涔堝氨鍙互璁块棶http://localhost:8080/output.js鏄剧劧鎴戜滑鏇存兂鐪嬪埌鏁堟灉鑰屼笉鏄墦鍖呭悗鐨勪唬鐮侊紝鎵€浠ユ垜浠彲浠ュ湪dist鐩綍涓嬫柊寤轰竴涓猦tml鏂囦欢瀵煎叆锛?scriptsrc="./output.js">鎰熻webpack鐨勭儹鏇存柊鍐呭鍑烘潵浜嗭紝鎴戜滑淇敼index.js鏂囦欢鐪嬬湅鑳戒笉鑳借嚜鍔ㄥ埛鏂?usestrict'document.write('helloworld~byebyeworld')杩欎釜纭疄鏄儹鏇存柊锛屼絾鏄繖鏄瘡娆′慨鏀归兘浼氬埛鏂癳nt鎰ゆ€掔殑椤甸潰銆傚彲浠ユ墦寮€鎺у埗鍙版煡鐪媤ebpack-dev-server鏄惁鎻愪緵浜嗗疄鏃堕噸杞界殑鍔熻兘锛屼絾鏄笉鑳藉眬閮ㄥ埛鏂般€傚繀椤讳娇鐢ㄦ渶鍚庝袱姝ョ殑閰嶇疆鏉ュ疄鐜板眬閮ㄥ埛鏂般€傝繖涓や釜姝ラ鐨勮儗鍚庢槸HotModuleReplacementPlugin鐨勪娇鐢ㄣ€倃ebpack-dev-server閰嶅悎HotModuleReplacementPlugin瀹炵幇鐑洿鏂般€傛垜浠渶瑕佺殑鏄洿鏂颁慨鏀瑰悗鐨勬ā鍧楋紝浣嗕笉瑕佸埛鏂伴〉闈€傝繖鏃跺€欏氨闇€瑕佽繘琛屾ā鍧楃儹鏇存崲銆傜儹妯″潡鏇挎崲锛堟垨HMR锛夋槸webpack鎻愪緵鐨勬渶鏈夌敤鐨勫姛鑳戒箣涓€銆傚畠鍏佽鍦ㄨ繍琛屾椂鏇存柊鍚勭妯″潡锛岃€屾棤闇€杩涜瀹屽叏鍒锋柊銆傜壒鎬х儹妯″潡鏇挎崲锛圚MR-HotModuleReplacement锛夌壒鎬у彲浠ュ湪搴旂敤绋嬪簭杩愯鏃舵浛鎹€佹坊鍔犳垨鍒犻櫎妯″潡锛岃€屾棤闇€閲嶆柊鍔犺浇鏁翠釜椤甸潰銆備富瑕佹槸锛屽畠閫氳繃浠ヤ笅鏂瑰紡鏄剧潃鍔犲揩寮€鍙戦€熷害锛氫繚鐣欏湪鏁翠釜椤甸潰閲嶆柊鍔犺浇杩囩▼涓涪澶辩殑搴旂敤绋嬪簭鐘舵€併€傚彧鏇存柊鏇存敼鐨勫唴瀹逛互鑺傜渷瀹濊吹鐨勫紑鍙戞椂闂淬€傝皟鏁存牱寮忔洿蹇?鍑犱箮绛夊悓浜庡湪娴忚鍣ㄨ皟璇曞櫒涓洿鏀规牱寮忋€傚惎鐢?/webpack.dev.jsconstpath=require('path');constwebpack=require('webpack');//涓昏娣诲姞杩欎竴琛宮odule.exports={entry:'./src/index.js',//鍏ュ彛鏂囦欢output:{path:path.resolve(__dirname,'dist'),//杈撳嚭鏂囦欢鍚嶅埌鍝釜鏂囦欢澶?'output.js'//杈撳嚭鏂囦欢鍚峿,mode:'development',//寮€鍙戞ā寮廳evServer:{//contentBase:path.resolve(__dirname,'dist')//contentBase鐢ㄤ簬鎸囧畾鎵€鍦ㄧ洰褰曡闂殑html椤甸潰浣嶄簬锛涗絾鏄垜鏈湴鎶ラ敊浜嗭紝浣跨敤涓嬮潰鐨勮鍙tatic:path.resolve(__dirname,"dist"),hot:true//涓昏鏄姞浜嗚繖涓€琛寎,plugins:[//涓昏鏄姞浜嗚繖涓€琛宯ewwebpack.HotModuleReplacementPlugin()]};璇︾粏绛旀鍙傝€冨墠绔珮绾ч潰璇曢锛屾垜浠慨鏀规枃浠讹紝褰㈡垚寮曠敤鍏崇郴//index.jsimport{test}from'./page1.js'document.write('helloworld~1234')test()//page1.jsmodule.exports={test:function(){console.log(11111)}}鍦ㄥ叆鍙i〉闈㈢储寮曚笂娣诲姞鍙︿竴涓儴鍒唅f(module.hot){module.hot.accept();}銆俲s銆傝繕鑳藉疄鐜扮儹鏇存柊鍚楋紵閭f槸鍥犱负鎴戜滑姝e湪浣跨敤鐨勫姞杞界▼搴忓凡缁忓湪骞曞悗涓烘垜浠畬鎴愪簡銆傛帴涓嬫潵鎵цnpmrundev锛屾垜浠慨鏀筽age1.js锛屼細鍙戠幇椤甸潰娌℃湁鍒锋柊锛屼絾鏄洿鏂颁簡涓€浜涙枃浠讹紝杩欐牱灏卞疄鐜颁簡鎴戜滑鐨勭儹鏇存柊銆傜涓€姝ョ儹鏇存柊鍘熺悊锛屽湪webpack鐨剋atch妯″紡涓嬶紝濡傛灉鏂囦欢绯荤粺涓殑鏌愪釜鏂囦欢琚慨鏀癸紝webpack浼氱洃鍚枃浠剁殑鍙樺寲锛屾牴鎹厤缃枃浠堕噸鏂扮紪璇戞墦鍖呮ā鍧楋紝骞堕€氳繃a淇濆瓨鎵撳寘鍚庣殑浠g爜鍐呭瓨涓殑绠€鍗旿avaScript瀵硅薄銆傜浜屾鏄痺ebpack-dev-server鍜寃ebpack鐨勬帴鍙d氦浜掞紝鑰岃繖涓€姝ヤ富瑕佹槸dev-server鐨剋ebpack-dev-middleware鍜寃ebpack鐨勪氦浜掞紝webpack-dev-middleware璋冪敤webpack鏆撮湶鐨凙PI鐩戞帶浠g爜鍙樺寲骞跺憡璇墂ebpack灏嗕唬鐮佹墦鍖呭埌鍐呭瓨涓€傜涓夋鏄痺ebpack-dev-server鐩戝惉鏂囦欢鍙樺寲銆傛姝ラ涓庣涓€姝ョ殑涓嶅悓涔嬪鍦ㄤ簬瀹冧笉鐩戣浠g爜鏇存敼鍜岄噸鏂版墦鍖呫€傚綋鎴戜滑鍦ㄩ厤缃枃浠朵腑灏哾evServer.watchContentBase閰嶇疆涓簍rue鏃讹紝Server浼氱洃鍚繖浜涢厤缃枃浠跺す涓潤鎬佹枃浠剁殑鍙樺寲锛屽苟鍦ㄥ彉鍖栧悗閫氱煡娴忚鍣ㄥ疄鏃堕噸鏂板姞杞藉簲鐢ㄣ€傛敞鎰忚繖閲屾槸娴忚鍣ㄥ埛鏂帮紝鍜孒MR鏄袱涓蹇点€傜鍥涙涔熸槸webpack-dev-server浠g爜鐨勫伐浣溿€傝繖涓€姝ヤ富瑕佹槸閫氳繃sockjs锛坵ebpack-dev-server鐨勪緷璧栵級鍦ㄦ祻瑙堝櫒鍜屾湇鍔$寤虹珛涓€涓獁ebsocket闀胯繛鎺ワ紝缂栬瘧鎵撳寘鍚勪釜闃舵鐨剋ebpack閫氱煡娴忚鍣ㄧ姸鎬佷俊鎭紝鍚屾椂涔熷寘鎷涓夋锛孲erver鐩戝惉闈欐€佹枃浠跺彉鍖栫殑淇℃伅銆傛祻瑙堝櫒绔牴鎹繖浜涘鎺ュ瓧娑堟伅杩涜涓嶅悓鐨勬搷浣溿€傚綋鐒讹紝鏈嶅姟鍣ㄤ紶閫掔殑鏈€閲嶈鐨勪俊鎭槸鏂版ā鍧楃殑鍝堝笇鍊硷紝鍚庨潰鐨勬楠や細鏍规嵁杩欎釜鍝堝笇鍊艰繘琛屾ā鍧楃儹鏇挎崲銆倃ebpack-dev-server/client绔笉鑳借姹傛洿鏂颁唬鐮侊紝涔熶笉浼氳繘琛岀儹妯″潡鎿嶄綔锛屽皢杩欎簺宸ヤ綔浜よ繕缁檞ebpack銆倃ebpack/hot/dev-server鐨勫伐浣滄槸鏍规嵁webpack-dev-server/client浼犻€掔粰瀹冪殑淇℃伅鍜宒ev-server鐨勯厤缃潵鍐冲畾鏄埛鏂版祻瑙堝櫒杩樻槸鎵ц妯″潡鐑洿鏂般€傚綋鐒讹紝濡傛灉鍙槸鍒锋柊娴忚鍣紝灏辨病鏈夊悗缁楠や簡銆侶otModuleReplacement.runtime鏄鎴风HMR鐨刪ub锛屽畠鎺ユ敹涓婁竴姝ヤ紶缁欎粬鐨勬柊妯″潡鐨刪ash鍊硷紝閫氳繃JsonpMainTemplate.runtime鍚戞湇鍔″櫒鍙戦€丄jax璇锋眰锛屾湇鍔″櫒杩斿洖涓€涓猨son锛屽叾涓寘鍚墍鏈夋洿鏂扮殑妯″潡鐨刪ash鍊硷紝鑾峰彇鏇存柊鍒楄〃鍚庯紝妯″潡鍐嶆閫氳繃jsonp璇锋眰鏈€鏂扮殑妯″潡浠g爜銆傝繖灏辨槸涓婂浘涓殑绗?銆?銆?姝ャ€傜10姝ユ槸鍐冲畾HMR鎴愬姛涓庡惁鐨勫叧閿竴姝ャ€傚湪杩欎竴姝ヤ腑锛孒otModulePlugin浼氭瘮杈冩柊鏃фā鍧楁潵鍐冲畾鏄惁鏇存柊妯″潡銆傚喅瀹氭洿鏂版ā鍧楀悗锛屾鏌ユā鍧椾箣闂寸殑渚濊禆鍏崇郴锛屾洿鏂版ā鍧椼€傚悓鏃讹紝鏇存柊妯″潡涔嬮棿鐨勪緷璧栧紩鐢ㄣ€傛渶鍚庝竴姝ワ紝褰揌MR澶辫触鏃讹紝鍥為€€鍒發ivereload鎿嶄綔锛屽嵆鍒锋柊娴忚鍣ㄤ互鑾峰彇鏈€鏂扮殑鎵撳寘浠g爜銆傚湪鍒濇浣撻獙杩噖ebpack鐨勭儹鏇存柊涔嬪悗锛屼綘鍙兘闇€瑕佹€濊€冧互涓嬪嚑涓棶棰橈細涓轰粈涔堥渶瑕佺儹鏇存柊锛烪otModuleReplacement锛堜互涓嬬畝绉癏MR锛夋槸webpack杩勪粖涓烘鎺ㄥ嚭鐨勬渶浠や汉鍏村鐨勫姛鑳戒箣涓€銆傚綋浣犱慨鏀逛唬鐮佸苟淇濆瓨鍚庯紝webpack浼氶噸鏂版墦鍖呬唬鐮佸苟灏嗘柊妯″潡鍙戦€佺粰娴忚鍣紝娴忚鍣ㄧ敤鏂版ā鍧楁浛鎹㈡棫妯″潡锛岃繖鏍峰簲鐢ㄧ▼搴忓氨鍙互鍦ㄤ笉鍒锋柊娴忚鍣ㄧ殑鎯呭喌涓嬭繘琛屾洿鏂般€傛瘮濡傚湪寮€鍙戜竴涓綉椤电殑杩囩▼涓紝褰撲綘鐐瑰嚮涓€涓寜閽紝鍑虹幇涓€涓脊绐楃殑鏃跺€欙紝浣犲彂鐜板脊绐楃殑鏍囬娌℃湁瀵归綈銆傝繖鏃跺€欎綘淇敼CSS鏍峰紡锛屼繚瀛樸€傚湪娴忚鍣ㄤ笉鍒锋柊鐨勫墠鎻愪笅锛屾爣棰樻牱寮忓彂鐢熷彉鍖栥€傛劅瑙夊氨鍍忕洿鎺ュ湪Chrome鐨勫紑鍙戣€呭伐鍏蜂腑淇敼鍏冪礌鏍峰紡涓€鏍枫€傛€濊€凁煉★細HMR鏄浣曞疄鐜拌嚜鍔ㄧ紪璇戠殑锛焪ebpack鍙互閫氳繃watch鐩戞帶鏂囦欢缂栬瘧瀹屾垚鍜岀洃鎺ф枃浠跺彉鍖栥€倃ebpack-dev-middleware鍙互璋冪敤webpackAPI鏉ョ洃鎺т唬鐮佸彉鍖栥€倃ebpack-dev-middleware浣跨敤sockjs鍜寃ebpack-dev-server/client寤虹珛webSocket闀胯繛鎺ャ€傚憡鐭ユ祻瑙堝櫒缂栬瘧銆佺紪璇戙€佹墦鍖厀ebpack鐨勫悇涓樁娈点€備富瑕佹槸鍛婅瘔鏂版ā鍧楃殑hash鐨勫彉鍖栵紝鐒跺悗webpack-dev-server/client鑾峰彇涓嶅埌鏇存柊鐨勪唬鐮侊紝閫氳繃webpack/hot/server鑾峰彇鏇存柊鐨勬ā鍧楋紝鐒跺悗HMR瀵规瘮鏇存柊鐨勬ā鍧楀拰妯″潡鐨勪緷璧栭」銆傛€濊€凁煉★細娴忚鍣ㄥ浣曟劅鐭ユā鍧楀唴瀹圭殑鍙樺寲锛焪ebpack-dev-middleware浣跨敤sockjs鍜寃ebpack-dev-server/client寤虹珛webSocket闀胯繛鎺ャ€傚憡鐭ユ祻瑙堝櫒缂栬瘧銆佺紪璇戙€佹墦鍖厀ebpack鐨勫悇涓樁娈点€傛€濊€凁煉★細閭f柊鐢熸垚鐨勪袱涓枃浠舵槸鍋氫粈涔堢敤鐨勫憿锛焏04feccfa446b174bc10.hot-update.json閫氱煡娴忚鍣ㄦ柊鐨刪ash鍊硷紝鍝釜chunk鍙戠敓浜嗗彉鍖朾lock棣栧厛鏄娇鐢ㄦ渶鍚庝竴娆′繚瀛樼殑hash鍊硷紝閫氳繃XMLHttpRequest璇锋眰hot-update.json鏂囦欢銆傝繖涓弿杩版枃浠剁殑浣滅敤鏄彁渚涗慨鏀规枃浠舵墍鍦ㄧ殑chunkId銆傜劧鍚庝娇鐢↗SONP灏嗘枃浠跺悕涓巋ot-update.json杩斿洖鐨刢hunkId鍜屼笂娆′繚瀛樼殑hash鎷兼帴寰楀埌鏂囦欢鍐呭銆傛€濊€凁煉★細濡備綍瀹炵幇灞€閮ㄦ洿鏂帮紵褰揾ot-update.js鏂囦欢鍔犺浇鏃讹紝浼氭墽琛寃indow.webpackHotUpdate锛岀劧鍚庤皟鐢╤otApply銆俬otApply鏍规嵁妯″潡ID鎵惧埌鏃фā鍧楀苟鍒犻櫎锛岀劧鍚庢墽琛岀埗妯″潡涓敞鍐岀殑accept鍥炶皟锛屽疄鐜版ā鍧楀唴瀹圭殑灞€閮ㄦ洿鏂般€傛€濊€凁煉★細webpack鍙互灏嗕笉鍚岀殑妯″潡鎵撳寘鎴恇undle鏂囦欢鎴栬€呭嚑涓猚hunk鏂囦欢锛屼絾鏄垜閫氳繃webpackHMR寮€鍙戠殑鏃跺€欙紝鍦ㄦ垜鐨刣ist鐩綍涓嬫病鏈夋壘鍒皐ebpack鎵撳寘濂界殑鏂囦欢銆備粬浠幓鍝噷锛熺緤姣涘竷锛熷師鏉ユ槸webpack鎶奲undle.js鏂囦欢鎵撳寘杩涗簡鍐呭瓨銆備箣鎵€浠ヤ笉鐢熸垚鏂囦欢锛屾槸鍥犱负璁块棶鍐呭瓨涓殑浠g爜姣旇闂枃浠剁郴缁熶腑鐨勬枃浠堕€熷害鏇村揩锛屽悓鏃朵篃鍑忓皯浜嗗皢浠g爜鍐欏叆鏂囦欢鐨勫紑閿€銆傝繖涓€鍒囬兘褰掑姛浜巑emory-fs锛宮emory-fs鏄痺ebpack-dev-middleware鐨勪緷璧栧簱锛寃ebpack-dev-middleware灏唚ebpack鍘熸湁鐨刼utputFileSystem鏇挎崲涓轰竴涓狹emoryFileSystem瀹炰緥锛岃繖鏍蜂唬鐮佸氨浼氳緭鍑哄埌鍐呭瓨涓€傛€濊€凁煉★細閫氳繃鏌ョ湅webpack-dev-server鐨刾ackage.json鏂囦欢锛屾垜浠煡閬撳畠渚濊禆浜巜ebpack-dev-middleware搴擄紝閭d箞webpack-dev-middleware鍦℉MR杩囩▼涓捣鍒颁粈涔堜綔鐢ㄥ憿锛焪ebpack-dev-middleware鎵紨涓棿浠剁殑瑙掕壊銆備竴绔皟鐢╳ebpack鏆撮湶鐨凙PI妫€娴嬩唬鐮佸彉鍖栵紝鍙︿竴绔€氳繃sockjs鍜寃ebpack-dev-server/client寤虹珛webSocket闀胯繛鎺ワ紝灏唚ebpack鍖呯紪璇戠殑鍚勪釜闃舵鍙戦€佸埌娴忚鍣ㄧ銆傛€濊€凁煉★細鍦ㄤ娇鐢℉MR鐨勮繃绋嬩腑锛岄€氳繃Chrome寮€鍙戣€呭伐鍏凤紝鐭ラ亾娴忚鍣ㄩ€氳繃websocket涓巜ebpack-dev-server閫氫俊锛屼絾鏄湪websocket鐨勬秷鎭腑娌℃湁鍙戠幇鏂扮殑妯″潡浠g爜銆傛墦鍖呭ソ鐨勬柊妯″潡鏄浣曞彂閫佸埌娴忚鍣ㄧ殑锛熶负浠€涔堟柊妯″潡娌℃湁閫氳繃websocket灏嗘秷鎭彂閫佸埌娴忚鍣紵鍔熻兘鍧楃殑瑙h€︼紝姣忎釜妯″潡鍚勫徃鍏惰亴锛宒ev-server/client鍙礋璐f秷鎭殑浼犻€掍笉璐熻矗鏂版ā鍧楃殑鑾峰彇锛岃€岃繖浜涘伐浣滃簲璇ヤ氦鐢盚MRruntime鏉ュ畬鎴愶紝搴旇鏄疕MRruntime鑾峰彇鏂扮殑浠g爜浣嶇疆銆傛澶栵紝鍥犱负鍦ㄤ笉浣跨敤webpack-dev-server鐨勫墠鎻愪笅锛屼娇鐢╳ebpack-hot-middleware鍜寃ebpack鍚屾牱鍙互瀹屾垚妯″潡鐑洿鏂拌繃绋嬨€備娇鐢╳ebpack-hot-middleware鏈変竴浠舵湁瓒g殑浜嬫儏銆傚畠涓嶄娇鐢╳ebsocket锛岃€屾槸浣跨敤鐨凟ventSource銆傜患涓婃墍杩帮紝鍦℉MR鐨勫伐浣滄祦绋嬩腑锛屾柊鐨勬ā鍧椾唬鐮佷笉搴旇鏀惧湪websocket娑堟伅涓€傛€濊€凁煉★細娴忚鍣ㄨ幏鍙栧埌鏈€鏂扮殑妯″潡浠g爜锛孒MR濡備綍灏嗘棫妯″潡鏇挎崲涓烘柊妯″潡锛屾浛鎹㈣繃绋嬩腑濡備綍澶勭悊妯″潡涔嬮棿鐨勪緷璧栧叧绯伙紵鎬濊€凁煉★細鐑洿鎹㈡ā鍧楁椂锛屽鏋滄洿鎹㈡ā鍧楀け璐ワ紝鏈夋病鏈塮allback鏈哄埗锛熸ā鍧楃儹鏇存柊閿欒澶勭悊銆傚鏋滅儹鏇存柊杩囩▼涓嚭鐜伴敊璇紝鐑洿鏂板皢鍥為€€鍒板埛鏂版祻瑙堝櫒銆傞潰璇曢锛氳璇磜ebpack鐨勭儹鏇存柊鍘熺悊锛焪ebpack鍙互閫氳繃watch鐩戞帶浠g爜鍙樺寲锛泈ebpack-dev-middleware鍙互璋冪敤webpack鏆撮湶鐨凙PI妫€娴嬩唬鐮佸彉鍖栵紝骞跺憡璇墂ebpack灏嗕唬鐮佷繚瀛樺湪鍐呭瓨涓紱webpack-dev-middleware閫氳繃sockjs鍜寃ebpack-dev-server/client寤虹珛webSocket闀胯繛鎺ワ紝閫氱煡娴忚鍣╳ebpack鎵撳寘闃舵鐨勫悇涓姸鎬侊紝鏈€閲嶈鐨勬槸鏂版ā鍧楃殑hash鍊笺€倃ebpack-dev-server/client閫氳繃webpack/hot/dev-server涓殑HMR璇锋眰鏂扮殑鏇存柊妯″潡锛孒MR涓昏浣跨敤JSONP銆傚厛鑾峰彇hash鐨刯son鏂囦欢锛岀劧鍚庢牴鎹甴ash鎷兼帴鍑烘洿鏂扮殑鏂囦欢js锛岀劧鍚嶩otModulePlugin瀵规瘮鏂版棫妯″潡鍜屾ā鍧椾緷璧栧畬鎴愭洿鏂般€?/p>
