gulp加批處理(.bat)實現(xiàn)ng多應(yīng)用一鍵自動化構(gòu)建
批處理
常用常見的批處理文件有.bat文件,可用文本編輯器直接編輯內(nèi)部代碼,運行也比較方便,windows平臺直接雙擊執(zhí)行即可,具體請自行了解。
需求背景
angular項目中,當(dāng)項目越來越大時,很多通用模塊(module)可能需要抽象出來,這是一點,另外可能有某些子應(yīng)用也會單獨抽離出來,這是另一點。
當(dāng)一個大型項目同時包括多個子應(yīng)用時,編碼后的編譯或者打包就會比較麻煩,特別是在項目持續(xù)集成的一種狀態(tài)下,或者項目組有新成員(經(jīng)驗稍微薄弱)情況下。
需要了解
看下面的代碼之前,如果您是angular使用者+gulp使用者,為了更好的理解下面的代碼,你可能需要了解以下東西:node、npm、node_modules、gulp。
如果您不使用angular或者gulp,也沒有太大關(guān)系,你可以通過我膚淺的解釋來理解一些批處理相關(guān)的操作,以應(yīng)用到其他用途。
示例&&解釋
// 關(guān)閉回顯,加上這句,當(dāng)前執(zhí)行的命令不會顯示(即,下面這些代碼不會顯示在屏幕上) @echo off // 讀取run_config.txt文件第一行數(shù)據(jù),以參數(shù)domain存儲,然后跳轉(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存儲 :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)利,其中將各個項目(各應(yīng)用)需要的打包分離出來,分別對應(yīng)相應(yīng)的自動化構(gòu)建腳本命令 // 以字母RCAPMQ一一對應(yīng),例如輸入Q,則進入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 // 用于進入對應(yīng)的盤符 %domain% // 用于進入對應(yīng)的項目目錄 cd%dir% // 執(zhí)行當(dāng)前目錄下的gulp命令 node %domain%%dir%\node_modules\gulp\bin\gulp.js echo -----------------------------ROOT PROCESS FINISHED!---------------------------- // 跳轉(zhuǎn)begin命令,可以讓使用者進行下一次使用 goto begin // 以下幾個命令類似上面 :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 // 該命令可以進行多個應(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命令用于修改盤符及項目目錄路徑 :modify // 刪除config文件 del run_config.txt // '/p'會暫停當(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
心得
弄這個.bat文件,主要也是為了偷懶。花了一點時間查找了相應(yīng)的操作、使用說明,也算是初步可用。
目前使用起來也比較方便,可以在以后有機會時再次自定義一個類似文件,便捷開發(fā),提高效率。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
NodeJs實現(xiàn)跨域WebSocket即時通訊加強版
這篇文章主要為大家介紹了NodeJs實現(xiàn)跨域WebSocket即時通訊加強版示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11在windows上用nodejs搭建靜態(tài)文件服務(wù)器的簡單方法
這篇文章主要介紹了在windows上用nodejs搭建靜態(tài)文件服務(wù)器的簡單方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08Node.js結(jié)合FFmpeg構(gòu)建自動化腳本實現(xiàn)轉(zhuǎn)碼視頻
傳統(tǒng)的視頻轉(zhuǎn)碼中,很常用的工具是FFmpeg,本文主要介紹了Node.js結(jié)合FFmpeg構(gòu)建自動化腳本實現(xiàn)轉(zhuǎn)碼視頻,具有一定的參考價值,感興趣的可以了解一下2024-04-04node.js事件循環(huán)機制及與js區(qū)別詳解
這篇文章主要為大家介紹了node.js事件循環(huán)機制及與js區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09express框架實現(xiàn)基于Websocket建立的簡易聊天室
本篇文章主要介紹了express框架實現(xiàn)基于Websocket建立的簡易聊天室,具有一定的參考價值,有興趣的可以了解一下2017-08-08