溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

gulp加批處理(.bat)實(shí)現(xiàn)ng多應(yīng)用一鍵自動(dòng)化構(gòu)建

發(fā)布時(shí)間:2020-09-18 12:32:44 來(lái)源:腳本之家 閱讀:157 作者:daisy 欄目:web開發(fā)

批處理

常用常見的批處理文件有.bat文件,可用文本編輯器直接編輯內(nèi)部代碼,運(yùn)行也比較方便,windows平臺(tái)直接雙擊執(zhí)行即可,具體請(qǐng)自行了解。

需求背景

angular項(xiàng)目中,當(dāng)項(xiàng)目越來(lái)越大時(shí),很多通用模塊(module)可能需要抽象出來(lái),這是一點(diǎn),另外可能有某些子應(yīng)用也會(huì)單獨(dú)抽離出來(lái),這是另一點(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)系,你可以通過我膚淺的解釋來(lái)理解一些批處理相關(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)用)需要的打包分離出來(lái),分別對(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)的操作、使用說明,也算是初步可用。

目前使用起來(lái)也比較方便,可以在以后有機(jī)會(huì)時(shí)再次自定義一個(gè)類似文件,便捷開發(fā),提高效率。

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI