前言

我們團(tuán)隊(duì)的前端項(xiàng)目是基于一套內(nèi)部的后臺(tái)框架進(jìn)行開(kāi)發(fā)的,這套框架是基于vue和ElementUI進(jìn)行了一些定制化包裝,并加入了一些自己團(tuán)隊(duì)設(shè)計(jì)的模塊,可以進(jìn)一步簡(jiǎn)化后臺(tái)頁(yè)面的開(kāi)發(fā)工作。
這套框架拆分為基礎(chǔ)組件模塊,用戶(hù)權(quán)限模塊,數(shù)據(jù)圖表模塊三個(gè)模塊,后臺(tái)業(yè)務(wù)層的開(kāi)發(fā)至少要基于基礎(chǔ)組件模塊,可以根據(jù)具體需要加入用戶(hù)權(quán)限模塊或者數(shù)據(jù)圖表模塊。盡管vue提供了一些腳手架工具vue-cli,但由于我們的項(xiàng)目是基于多頁(yè)面的配置進(jìn)行開(kāi)發(fā)和打包,與vue-cli生成的項(xiàng)目結(jié)構(gòu)和配置有些不一樣,所以創(chuàng)建項(xiàng)目的時(shí)候,仍然需要人工去修改很多地方,甚至為了方便,直接從之前的項(xiàng)目copy過(guò)來(lái)然后進(jìn)行魔改。表面上看問(wèn)題不大,但其實(shí)存在很多問(wèn)題:
針對(duì)以上問(wèn)題,我開(kāi)發(fā)了一個(gè)腳手架工具,可以根據(jù)交互動(dòng)態(tài)生成項(xiàng)目結(jié)構(gòu),自動(dòng)添加依賴(lài)和配置,并移除不需要的文件。
接下來(lái)整理一下我的整個(gè)開(kāi)發(fā)經(jīng)歷。
基本思路
開(kāi)始擼代碼之前,先捋一捋思路。其實(shí),在實(shí)現(xiàn)自己的腳手架之前,我反復(fù)整理分析了vue-cli的實(shí)現(xiàn),發(fā)現(xiàn)很多有意思的模塊,并從中借鑒了它的一些好的思想。

vue-cli是將項(xiàng)目模板作為資源獨(dú)立發(fā)布在git上,然后在運(yùn)行的時(shí)候?qū)⒛0逑螺d下來(lái),經(jīng)過(guò)模板引擎渲染,最后生成工程。這樣將項(xiàng)目模板與工具分離的目的主要是,項(xiàng)目模板負(fù)責(zé)項(xiàng)目的結(jié)構(gòu)和依賴(lài)配置,腳手架負(fù)責(zé)項(xiàng)目構(gòu)建的流程,這兩部分并沒(méi)有太大的關(guān)聯(lián),通過(guò)分離,可以確保這兩部分獨(dú)立維護(hù)。假如項(xiàng)目的結(jié)構(gòu)、依賴(lài)項(xiàng)或者配置有變動(dòng),只需要更新項(xiàng)目模板即可。
參照vue-cli的思路,我也將項(xiàng)目模板獨(dú)立發(fā)布到git上,然后通過(guò)腳手架工具下載下來(lái),經(jīng)過(guò)與腳手架的交互獲取新項(xiàng)目的信息,并將交互的輸入作為元信息渲染項(xiàng)目模板,最終得到項(xiàng)目的基礎(chǔ)結(jié)構(gòu)。
工程結(jié)構(gòu)
工程基于 nodejs 8.4 以及 ES6 進(jìn)行開(kāi)發(fā),目錄結(jié)構(gòu)如下
/bin # ------ 命令執(zhí)行文件 /lib # ------ 工具模塊 package.json
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)題目:詳解基于node.js的腳手架工具開(kāi)發(fā)經(jīng)歷-創(chuàng)新互聯(lián)
地址分享:http://chinadenli.net/article16/diiedg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、用戶(hù)體驗(yàn)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容