版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度某物流公司與某制造商關(guān)于物流服務(wù)合同3篇
- 2024年暑期實習(xí)生實習(xí)合同及人才儲備協(xié)議3篇
- 2024年度地板打蠟與綠色環(huán)保產(chǎn)業(yè)合作合同3篇
- 2024年度防盜門安裝與社區(qū)安全保障體系合同2篇
- 2024年度土地承包合同終止后的土地復(fù)耕補貼協(xié)議3篇
- 2024年房屋買賣包含土地使用權(quán)合同3篇
- 2024年大蒜種植基地與農(nóng)產(chǎn)品加工企業(yè)采購供應(yīng)合同3篇
- 2024年度廣告發(fā)布合同:某品牌廣告在社交媒體平臺發(fā)布3篇
- 2024版保險代理協(xié)議合同3篇
- 2024版企業(yè)法律視角下的人力資源績效評估合同3篇
- 空白貨品簽收單
- 水泥混凝土路面施工方案85171
- 建筑電氣施工圖(1)課件
- 質(zhì)量管理體系運行獎懲考核辦法課案
- 泰康人壽養(yǎng)老社區(qū)介紹課件
- T∕CSTM 00584-2022 建筑用晶體硅光伏屋面瓦
- 2020春國家開放大學(xué)《應(yīng)用寫作》形考任務(wù)1-6參考答案
- 國家開放大學(xué)實驗學(xué)院生活中的法律第二單元測驗答案
- CAMDS操作方法及使用技巧
- Zarit照顧者負擔量表
- 2021年全國質(zhì)量獎現(xiàn)場匯報材料-財務(wù)資源、財務(wù)管理過程及結(jié)果課件
評論
0/150
提交評論