gulp加批处理(.bat)实现ng多应用一键自动化构建
批处理
常用常见的批处理文件有.bat文件,可用文本编辑器直接编辑内部代码,运行也比较方便,windows平台直接双击执行即可,具体请自行了解。
需求背景
angular项目中,当项目越来越大时,很多通用模块(module)可能需要抽象出来,这是一点,另外可能有某些子应用也会单独抽离出来,这是另一点。
当一个大型项目同时包括多个子应用时,编码后的编译或者打包就会比较麻烦,特别是在项目持续集成的一种状态下,或者项目组有新成员(经验稍微薄弱)情况下。
需要了解
看下面的代码之前,如果您是angular使用者+gulp使用者,为了更好的理解下面的代码,你可能需要了解以下东西:node、npm、node_modules、gulp。
如果您不使用angular或者gulp,也没有太大关系,你可以通过我肤浅的解释来理解一些批处理相关的操作,以应用到其他用途。
示例&&解释
//关闭回显,加上这句,当前执行的命令不会显示(即,下面这些代码不会显示在屏幕上) @echooff //读取run_config.txt文件第一行数据,以参数domain存储,然后跳转到secondArgs命令执行 //我这么写不可取,跳转secondArgs命令主要用于读取第二行数据 for/f%%iin(run_config.txt)do( setdomain=%%i gotosecondArgs ) //读取第二行数据以参数dir存储 :secondArgs for/f%%iin(run_config.txt)do( setdir=%%i ) //输出参数domain、dir echotherootpathis:%domain% echotheprojectpathis:%dir% echoAUTORUNING,PLEASEENTERACCORDINGTHETIPS...... //begin命令 :begin echo************TIPSSTART************ echoatthefirstuse,pleaseinput'm'tosetrootpathandprojectpathaccordingthetips. echo************TIPSENDS!************ //改变字体颜色,可选颜色不多 color07 //以命令选择的形式,给使用者选择的权利,其中将各个项目(各应用)需要的打包分离出来,分别对应相应的自动化构建脚本命令 //以字母RCAPMQ一一对应,例如输入Q,则进入exit命令 choice/mROOT,COMMONS,APP,PORTAL,MODIFY,EXIT/c:RCAPMQ iferrorlevel6gotoexit iferrorlevel5gotomodify iferrorlevel4gotoportal iferrorlevel3gotoapp iferrorlevel2gotocommons iferrorlevel1gotoroot :root color0a //用于进入对应的盘符 %domain% //用于进入对应的项目目录 cd%dir% //执行当前目录下的gulp命令 node%domain%%dir%\node_modules\gulp\bin\gulp.js echo-----------------------------ROOTPROCESSFINISHED!---------------------------- //跳转begin命令,可以让使用者进行下一次使用 gotobegin //以下几个命令类似上面 :commons color0d %domain% cd%dir%\commons node%domain%%dir%\node_modules\gulp\bin\gulp.js echo----------------------------COMMONSPROCESSFINISHED!-------------------------- gotobegin :app coloroe %domain% cd%dir%\app node%domain%%dir%\node_modules\gulp\bin\gulp.jsdebug echo---------------------------APP_BASEPROCESSFINISHED!-------------------------- gotobegin //该命令可以进行多个应用的一键构建 :portal color0a %domain% cd%dir% node%domain%%dir%\node_modules\gulp\bin\gulp.js cls echo-----------------------------ROOTPROCESSFINISHED!---------------------------- echo***************************COMMONSPROCESSSTARTING!*************************** color0d %domain% cd%dir%\commons node%domain%%dir%\node_modules\gulp\bin\gulp.js cls echo----------------------------COMMONSPROCESSFINISHED!-------------------------- echo******************************APPPROCESSSTARTING***************************** color0e %domain% cd%dir%\app node%domain%%dir%\node_modules\gulp\bin\gulp.jsdebug cls echo------------------------------APPPROCESSFINISHED----------------------------- echo******************************************************************************* color0f gotobegin //modify命令用于修改盘符及项目目录路径 :modify //删除config文件 delrun_config.txt //'/p'会暂停当前命令 //此处主要用于获取用户输入 set/pdomain=pleaseinputyoursrootpath,endwith':',eg.'d:': echotherootpathis:%domain% //输出输入的信息并保存到config文件中 @echo%domain%>>run_config.txt set/pdir=pleaseinputyoursprojectpath,startwith'/',eg.'/xx/xx': echotheprojectpathis:%dir% @echo%dir%>>run_config.txt gotobegin //关闭当前窗口 :exit pause
心得
弄这个.bat文件,主要也是为了偷懒。花了一点时间查找了相应的操作、使用说明,也算是初步可用。
目前使用起来也比较方便,可以在以后有机会时再次自定义一个类似文件,便捷开发,提高效率。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。