gulp加批處理(.bat)實(shí)現(xiàn)ng多應(yīng)用一鍵自動(dòng)化構(gòu)建
批處理
常用常見的批處理文件有.bat文件,可用文本編輯器直接編輯內(nèi)部代碼,運(yùn)行也比較方便,windows平臺(tái)直接雙擊執(zhí)行即可,具體請(qǐng)自行了解。
需求背景
angular項(xiàng)目中,當(dāng)項(xiàng)目越來越大時(shí),很多通用模塊(module)可能需要抽象出來,這是一點(diǎn),另外可能有某些子應(yīng)用也會(huì)單獨(dú)抽離出來,這是另一點(diǎn)。
當(dāng)一個(gè)大型項(xiàng)目同時(shí)包括多個(gè)子應(yīng)用時(shí),編碼后的編譯或者打包就會(huì)比較麻煩,特別是在項(xiàng)目持續(xù)集成的一種狀態(tài)下,或者項(xiàng)目組有新成員(經(jīng)驗(yàn)稍微薄弱)情況下。
需要了解
看下面的代碼之前,如果您是angular使用者+gulp使用者,為了更好的理解下面的代碼,你可能需要了解以下東西:node、npm、node_modules、gulp。
如果您不使用angular或者gulp,也沒有太大關(guān)系,你可以通過我膚淺的解釋來理解一些批處理相關(guān)的操作,以應(yīng)用到其他用途。
示例&&解釋
// 關(guān)閉回顯,加上這句,當(dāng)前執(zhí)行的命令不會(huì)顯示(即,下面這些代碼不會(huì)顯示在屏幕上) @echo off // 讀取run_config.txt文件第一行數(shù)據(jù),以參數(shù)domain存儲(chǔ),然后跳轉(zhuǎn)到secondArgs命令執(zhí)行 // 我這么寫不可取,跳轉(zhuǎn)secondArgs命令主要用于讀取第二行數(shù)據(jù) for /f %%i in (run_config.txt) do ( set domain=%%i goto secondArgs ) // 讀取第二行數(shù)據(jù)以參數(shù)dir存儲(chǔ) :secondArgs for /f %%i in (run_config.txt) do ( set dir=%%i ) // 輸出參數(shù)domain、dir echo the root path is:%domain% echo the project path is:%dir% echo AUTO RUNING, PLEASE ENTER ACCORDING THE TIPS...... // begin命令 :begin echo ************TIPS START************ echo at the first use,please input 'm' to set root path and project path according the tips. echo ************TIPS ENDS!************ // 改變字體顏色,可選顏色不多 color 07 // 以命令選擇的形式,給使用者選擇的權(quán)利,其中將各個(gè)項(xiàng)目(各應(yīng)用)需要的打包分離出來,分別對(duì)應(yīng)相應(yīng)的自動(dòng)化構(gòu)建腳本命令 // 以字母RCAPMQ一一對(duì)應(yīng),例如輸入Q,則進(jìn)入exit命令 choice /m ROOT,COMMONS,APP,PORTAL,MODIFY,EXIT /c:RCAPMQ if errorlevel 6 goto exit if errorlevel 5 goto modify if errorlevel 4 goto portal if errorlevel 3 goto app if errorlevel 2 goto commons if errorlevel 1 goto root :root color 0a // 用于進(jìn)入對(duì)應(yīng)的盤符 %domain% // 用于進(jìn)入對(duì)應(yīng)的項(xiàng)目目錄 cd%dir% // 執(zhí)行當(dāng)前目錄下的gulp命令 node %domain%%dir%\node_modules\gulp\bin\gulp.js echo -----------------------------ROOT PROCESS FINISHED!---------------------------- // 跳轉(zhuǎn)begin命令,可以讓使用者進(jìn)行下一次使用 goto begin // 以下幾個(gè)命令類似上面 :commons color 0d %domain% cd%dir%\commons node %domain%%dir%\node_modules\gulp\bin\gulp.js echo ----------------------------COMMONS PROCESS FINISHED!-------------------------- goto begin :app color oe %domain% cd%dir%\app node %domain%%dir%\node_modules\gulp\bin\gulp.js debug echo ---------------------------APP_BASE PROCESS FINISHED!-------------------------- goto begin // 該命令可以進(jìn)行多個(gè)應(yīng)用的一鍵構(gòu)建 :portal color 0a %domain% cd%dir% node %domain%%dir%\node_modules\gulp\bin\gulp.js cls echo -----------------------------ROOT PROCESS FINISHED!---------------------------- echo ***************************COMMONS PROCESS STARTING!*************************** color 0d %domain% cd%dir%\commons node %domain%%dir%\node_modules\gulp\bin\gulp.js cls echo ----------------------------COMMONS PROCESS FINISHED!-------------------------- echo ******************************APP PROCESS STARTING***************************** color 0e %domain% cd%dir%\app node %domain%%dir%\node_modules\gulp\bin\gulp.js debug cls echo ------------------------------APP PROCESS FINISHED----------------------------- echo ******************************************************************************* color 0f goto begin // modify命令用于修改盤符及項(xiàng)目目錄路徑 :modify // 刪除config文件 del run_config.txt // '/p'會(huì)暫停當(dāng)前命令 // 此處主要用于獲取用戶輸入 set /p domain=please input yours root path,end with ':', eg.'d:': echo the root path is:%domain% // 輸出輸入的信息并保存到config文件中 @echo %domain%>>run_config.txt set /p dir=please input yours project path, start with '/', eg. '/xx/xx': echo the project path is:%dir% @echo %dir%>>run_config.txt goto begin // 關(guān)閉當(dāng)前窗口 :exit pause
心得
弄這個(gè).bat文件,主要也是為了偷懶?;艘稽c(diǎn)時(shí)間查找了相應(yīng)的操作、使用說明,也算是初步可用。
目前使用起來也比較方便,可以在以后有機(jī)會(huì)時(shí)再次自定義一個(gè)類似文件,便捷開發(fā),提高效率。
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
nodejs實(shí)現(xiàn)套接字服務(wù)功能詳解
這篇文章主要介紹了nodejs實(shí)現(xiàn)套接字服務(wù)功能,簡(jiǎn)單描述了套接字的概念、功能,并結(jié)合實(shí)例形式分析了nodejs使用socket對(duì)象創(chuàng)建及使用套接字進(jìn)行數(shù)據(jù)傳輸相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06
Nodejs學(xué)習(xí)筆記之測(cè)試驅(qū)動(dòng)
本文是本系列文章的第二篇,主要是測(cè)試針對(duì)于web后端的驅(qū)動(dòng),在開發(fā)過程中,在開發(fā)完成一段代碼后如果負(fù)責(zé)任而不是說完全把問題交給測(cè)試人員去發(fā)現(xiàn)的話,這個(gè)時(shí)候通常都會(huì)去做一些手動(dòng)的測(cè)試。2015-04-04
node.js實(shí)現(xiàn)多圖片上傳實(shí)例
這篇文章主要介紹了node.js實(shí)現(xiàn)多圖片上傳實(shí)例,包括路由、控制器和視圖的源碼,重點(diǎn)在圖片上傳處理程序,需要的朋友可以參考下2014-06-06
Node.js數(shù)據(jù)庫操作之查詢MySQL數(shù)據(jù)庫(二)
這篇文章主要介紹了Node.js數(shù)據(jù)庫操作之查詢MySQL數(shù)據(jù)庫的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
詳解npm 配置項(xiàng)registry修改為淘寶鏡像
這篇文章主要介紹了詳解npm 配置項(xiàng)registry修改為淘寶鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
Express + Session 實(shí)現(xiàn)登錄驗(yàn)證功能
本文主要介紹在 Express 框架中,如何使用 Session 來實(shí)現(xiàn)用戶登錄身份驗(yàn)證。對(duì)express session實(shí)現(xiàn)登錄驗(yàn)證相關(guān)知識(shí),感興趣的朋友一起看看吧2017-09-09

