基于vue-cli搭建多模塊且各模塊獨(dú)立打包的項(xiàng)目
如果我們?cè)陂_(kāi)發(fā)系統(tǒng)A時(shí),能夠按模塊劃分生成多份靜態(tài)資源包,最終的成果物中,會(huì)有多個(gè)子目錄,每個(gè)子目錄可獨(dú)立運(yùn)行,完成一個(gè)業(yè)務(wù)功能。這樣的話,我們有任何系統(tǒng)需要我們開(kāi)發(fā)過(guò)的任何模塊,都可以直接打包指定的模塊,靈活組裝。
優(yōu)點(diǎn):
1、可與其他系統(tǒng)靈活組裝
2、各個(gè)模塊相互不受影響,所以不受框架和開(kāi)發(fā)模式的制約
3、不同模塊可以分開(kāi)部署
4、后期維護(hù)風(fēng)險(xiǎn)小,可以持續(xù)的、穩(wěn)定的進(jìn)行維護(hù)
缺點(diǎn):
1、各個(gè)模塊有相互獨(dú)立的資源包,那么如果有相同的資源引用,不能復(fù)用
2、模塊的組裝要依賴iframe,所以要對(duì)瀏覽器安全設(shè)置、cookie共享等問(wèn)題進(jìn)行單獨(dú)處理
3、用iframe來(lái)包裹組件,組件所能控制到的范圍就是其所在的iframe,當(dāng)涉及到全屏的應(yīng)用場(chǎng)景時(shí),會(huì)比較麻煩
4、不同組件之間的通信比較麻煩 實(shí)現(xiàn)目標(biāo)
vue-cli默認(rèn)打包方式的成果物:

修改配置后生成的成果物結(jié)構(gòu):
思路
由于我們現(xiàn)在的項(xiàng)目是多模塊的,每個(gè)模塊都應(yīng)該有獨(dú)立的入口,所以我們修改src目錄結(jié)構(gòu)如下:

注意:原來(lái)的src下的main.js、index.html和app.vue已經(jīng)沒(méi)用了,可以刪掉
然后模塊內(nèi)的目錄結(jié)構(gòu)如下圖所示:

注意:
這里跟原來(lái)的src下的main.js、index.html和app.vue一樣的,只不過(guò)我們把main.js改成了index.js而已。 至于模塊內(nèi)要使用路由、狀態(tài)管理都可以根據(jù)自己的需求去配置了。
以下是修改webpack配置的詳細(xì)步驟
第一步:增加build/module-conf.js用來(lái)處理獲取模塊目錄等問(wèn)題
第二步:增加build/build-all.js用來(lái)處理循環(huán)執(zhí)行打包命令
第三步:修改build/build.js增加MODULE_ENV參數(shù),用來(lái)記錄當(dāng)前打包的模塊名稱,增加MODE_ENV參數(shù),用來(lái)記錄當(dāng)前打包的模式
第四步:修改config/index.js的配置,修改打包時(shí)的出口目錄配置、html入口模板的配置以及靜態(tài)資源路徑配置
第五步:修改webpack.base.conf.js的入口配置,根據(jù)傳參,動(dòng)態(tài)配置入口文件
第六步:修改webpack.dev.conf.js的配置,增加多入口時(shí)webpackHtmlPlugin插件的配置,增加靜態(tài)資源服務(wù)器的配置
第七步:修改webpack.prod.conf.js的配置,增加對(duì)不同打包模式的處理。
第八步:修改package.json,增加npm run build-all指令 構(gòu)建指令 打包全部模塊到一個(gè)資源包下面,每個(gè)模塊的入口是module.html文件,靜態(tài)資源都在static目錄中,這種方式可以復(fù)用重復(fù)的資源
npm run build
打包指定模塊到一個(gè)資源包下面,每個(gè)模塊的入口是module.html文件,靜態(tài)資源都在static目錄中,這種方式可以復(fù)用重復(fù)的資源
npm run build moduleName1,moduleName2,...
打包所有模塊,然后每個(gè)模塊彼此獨(dú)立,有幾個(gè)模塊,就產(chǎn)生幾個(gè)靜態(tài)資源包,這種方式不會(huì)復(fù)用重復(fù)的資源
npm run build-all
總結(jié)
以上所述是小編給大家介紹的基于vue-cli搭建多模塊且各模塊獨(dú)立打包的項(xiàng)目,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
關(guān)于@click.native中?.native?的含義與使用方式
這篇文章主要介紹了關(guān)于@click.native中?.native?的含義與使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
解決element-ui的table表格控件表頭與內(nèi)容列不對(duì)齊問(wèn)題
這篇文章主要介紹了解決element-ui的table表格控件表頭與內(nèi)容列不對(duì)齊問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Vue通過(guò)自定義指令實(shí)現(xiàn)內(nèi)容替換的示例代碼
這篇文章主要介紹了利用Vue通過(guò)自定義指令實(shí)現(xiàn)內(nèi)容替換的方法,通過(guò)Vue.directive指令定義函數(shù)來(lái)實(shí)現(xiàn)內(nèi)容自定義,通過(guò)指令定義函數(shù)的三個(gè)鉤子函數(shù)(inserted、componentUpdated、unbind)來(lái)實(shí)現(xiàn)自定義內(nèi)容的掛載、更新和銷毀,需要的朋友可以參考下2025-03-03
Vue+Openlayer使用modify修改要素的完整代碼
這篇文章主要介紹了Vue+Openlayer使用modify修改要素的完整代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
vue.js數(shù)據(jù)加載完成前顯示原代碼{{代碼}}問(wèn)題及解決
這篇文章主要介紹了vue.js數(shù)據(jù)加載完成前顯示原代碼{{代碼}}問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Vue使用Echarts實(shí)現(xiàn)數(shù)據(jù)可視化的方法詳解
這篇文章主要為大家詳細(xì)介紹了Vue使用Echarts實(shí)現(xiàn)數(shù)據(jù)可視化的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
vue3解決跨域問(wèn)題詳細(xì)代碼親測(cè)有效
跨域,跨的是不同域,也就是協(xié)議或主機(jī)或或端口號(hào)不同造成的現(xiàn)象,本文給大家分享vue3解決跨域問(wèn)題詳細(xì)代碼親測(cè)有效,感興趣的朋友跟隨小編一起看看吧2022-11-11

