webpack生產(chǎn)環(huán)境和開發(fā)環(huán)境的控制_第1頁
webpack生產(chǎn)環(huán)境和開發(fā)環(huán)境的控制_第2頁
webpack生產(chǎn)環(huán)境和開發(fā)環(huán)境的控制_第3頁
webpack生產(chǎn)環(huán)境和開發(fā)環(huán)境的控制_第4頁
webpack生產(chǎn)環(huán)境和開發(fā)環(huán)境的控制_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

、在webpack配置文件中判斷當前模式(process.env.NODE_ENV對于我們的項目而言,有兩種模式,分別為開發(fā)模式和生產(chǎn)模式,在 webpack中也有個mode選項,作用為設(shè)置當前打包的模式。于是我們可能寫兩個甚至更多的webpack配置文件,在不同的模式下運行不同的文件。這個看起來問題不大,但是如果我只想把所有內(nèi)容寫在一個文件里面呢?這時就需要在配置文件里面獲取模式信息從而做定向操作,我們可以使用node里面的process.env對象(表示node環(huán)境相關(guān)的一些信息)。然后,我們就可以在env這個對象里面添加NODE_ENVi性表示我們的具體模式,在配置文件里面可以通過:process.env.NODE_EN進行獲取。process.env.NODE_ENV這是我們自己添加的一個用來區(qū)分環(huán)境的變量,我們通過這個來區(qū)分生產(chǎn)環(huán)境與開發(fā)環(huán)境。二、cross-env(跨平臺設(shè)置項目模式)由于給process.env設(shè)置NODE_ENV表示模式,在不同電腦上設(shè)置的方式是不一樣的,所以cross-env就來了,它可以跨平臺設(shè)置環(huán)境和使用環(huán)境變量。使用流程在webpack項目中安裝cross-env模塊cnpmicross-env-D通過腳本使用cross-env模塊設(shè)置模式變量在package.json的scripts選項中中寫下如下部分的代碼:當執(zhí)行叩m腳本,設(shè)置成功npmrundevnpmrunbuild在webpack配置文件中獲取當前環(huán)境變量值HPKkagejwnxfunw如Jo wcbpad<.?nfigjs* 」?iMe?WQbpa&k-en1/^瞻wec^xortiq.|E乂忖』cunknowns-^滬oulput>廬pathconstNODEBW-process.env.NODEENV;wnwlelogr—+WOEENV+11 °);1 //nctipark.ronfigrj4ewiMpiith-rrquire(*path*):t it"U'.P*piptirT={a anderMiDf.FNV,1 ?曲庁評77!育踴m output1{升?出丈薦踣程皿filenvie:'bund'LcJs,并暮岀Jc+tfi//cutoutlloathiffn足哪阱S徑path:path*resolve^_dirnoif,'tiist| hJwebpack-merge配置文件的合并通過上面的操作我們已經(jīng)可以在webpack的配置文件里面實現(xiàn)模式的判斷了,但是這里還存在一個問題,那就是如果代碼全部都放在一個文件里面,這個文件會變得非常臃腫且不好擴展與維護但是如果徹底的分開的話,有和最開始沒什么兩樣了,那么能不能有個折中的辦法呢?很明顯,有的。我們可以建立一個公共的webpack配置文件,這個文件里面把開發(fā)和生產(chǎn)的公共配置部分取出來放入其中,然后單獨建立兩個文件,一個開發(fā)一個生產(chǎn),其中只寫自己模式的極少內(nèi)容就可以了,最后當我們運行開發(fā)或者生產(chǎn)文件時會自動合并功能的內(nèi)容。操作流程安裝合并模塊webpack-mergecnpmiwebpack-merge-D修改package.json文件配置--config是可以設(shè)置我們執(zhí)行哪個webpack文件,默認是執(zhí)行webpack.config.js但是我們現(xiàn)在修改文件名了,所以我們要設(shè)置一下創(chuàng)建三個配置文件webpack.dev.config.js開發(fā)配置.config.js生產(chǎn)配置tmHiparkinrga.并mfe^Kl[.praxanrt^.|&*[j*J-^nkrawr^皿 dvv.Wiji^i?六bpy沁tM 盲用i^mpjiEXp脂LfVtlg#1!w+kf-MtAiWCiC4CXC4)niH4nOQnf^ljlT.771PMDFMI3>MMlnt#i*■商iLLr*l"iM**?<ii4fifl|j.#/31?giaAgjMrf*eti計=fqulrv*I#nh:V■iwrth.(I.nl:lyrJS■*)twiobilB-itiwUosn-vwpc?ldip4||hM-HIHEK?l£BE-iin-QUhpPVsAesstfs-tbad-renirecpoitusiFkvuarivtlE-dlvirrQ4kW也細優(yōu)vw-dimatirmd-soumMtqpvuii-a3?-riafTuvue-urfi-!wling-pmc^ra€pKk-rrwgfi!』■itJidwjiiEpree、node-^madLici*na■£■直孔制曰Mrh^iitf1imMic|jf"Ehrtp4th-wrg*IMnglulnpn^uriguilid*<L上片&Ull4ra/fIflfjIt9H5El-mmB72Wr,n*rt?(ii-*ierjeCfftii-rhvWOOf_0W=flrodXiCTWWwebp^Ch—fiAflfWMWQm疋MFlJJjH!? .gitigrwrc 甘|l pfl£kAgQ.|x?n Um ^Pttipfckdim<4iWeg.il uM A^klpKktPfluWlIlQj> UJK-f.|?JSIfldKInn:WtbpicI4.4L.1TJjk_127?^Built■&:科T卜M~?F5rU:HflRiAsm< tmEhHfci ChnnkMmme屮*Wb產(chǎn)■! tL4Uti?d|MilhEntrypoiinimila=prra_Je|4j./m/iHin.jii4itE^Evu<t)LBuiltjrhiMfIiMtaMac!HpglL^hi-r;Mfcg4rt.-aar^a7ihangil4j$Q1UEENEL四、開發(fā)模式下的熱更新/熱替換--webpack-dev-server安裝:cnpmiwebpack-dev-server-D使用:把腳本中的webpack換成webpack-dev-server即可效果id?¥.jis3W和思mlfi[■ittfid]vainentryira丄Mt ■=d**.j?[B|Mjlti?磚?/vrc/i?ddiE.jt棘D0廠{Mini1i.r^iltjI./HMlfli-e/_aiis<i-*it3il*l-i-7*HiHi"hital/irritaffl,jsi斗?1&KiB{mia>libailt]■1.3dwl-r?e?K/lM?iJIJUL Ibuilt][./Mda■adHl*E/Bhrt9JL-flHtiti4i?1.3? j門 ta^trs{uia}[built])[.)rMMda_BM^il>E/_li)fLmm?141.&.<4dLBglfl¥Bl/'L±ita/liBgl?BL.jsj|4-36ItiB{■■!■}[built]l[ri/_ttrip-Mi>t<9ji]161fiytn匚〕[./rwdE-_Hodults/uebfiack-diev-server^J■It.JptaEhiiaclk-ctetr-^emrtr/clienindex.js?tittp://lacjilJwst:SliBfrJ-/Mde■oAules/_Meh^ack?dEav^HrvEr^l.1A.3gw?VAv-MFHiVtllWtThftfjVLKE-iJmCtM4.23mlgUjLtailt]BidBlln/wlip?c:fc-<irv-!Mrwr^l.It.ItM^ffadE-tfw-Mrvvr/CllMit/evtrVtir.jf)3^1KLBtlllk}[Wilt]IB/iwieHdules/ue*?atk-dew-MnrtfB3.11.jOMAiAefti-dev-&eriher>rcllait/s4ck?t..jsI1.51KiB-{ula}[built|I Kll4m1h>I./iwdendHlni/MfefHrEK-drv-Mrwr?3dIt.30Wfef*cfc-dnr-3iariihcri/cljjHit/iftJi'Lt/14||.j*]9€4byl"■:biu'■|built|I. k/trttwk-dmi-Mrwrtfl.1*.J?wito*MlHiw-Miwr/cUMiViit£U/rtlM^Hffi.JiI1.S9KIBf町[bnLUIwrtvmk-dru-Mirw?ia- 3^#itpMlk-4n-Mrnr/CllMit/wtJilt/i!<Btf1v?*PV?i^jftI b>Ctb£M?Li*I./iwleikhJjteh/weij^iLhXtwils^nc pcJk/ltotiya£帕飛?\門曲517Bib^Les{mlIjiI[built]42Bytci Hbviltj*IBhuld-enrieriiilesiCgfipiledsKcessfullyi.[]在開發(fā)模式文件中配置webpack-dev-server{>package,json Jswebpack.dev,configJsxc>index.htmljsindex.jswebpack-dev-server>jswebpack.dev.configjs>[軻<unknown>>滬devServer//礎(chǔ)b閱tied電叭“nfig.js幵岌配豐constmerge=require('webpack-merge*);//j^S引入皿亡內(nèi)芒constcommon=requiref\/webpack^common+ccnfig+js' 引入?yún)坦泊鷆onstpath=require("p3th");5module■電xparts二merge(cannonj{output:{filename!F刖.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論