gulp加批处理(.bat)实现ng多应用一键自动化构建

2020-06-17 05:54:19易采站长站整理

批处理

常用常见的批处理文件有.bat文件,可用文本编辑器直接编辑内部代码,运行也比较方便,windows平台直接双击执行即可,具体请自行了解。

需求背景

angular项目中,当项目越来越大时,很多通用模块(module)可能需要抽象出来,这是一点,另外可能有某些子应用也会单独抽离出来,这是另一点。

当一个大型项目同时包括多个子应用时,编码后的编译或者打包就会比较麻烦,特别是在项目持续集成的一种状态下,或者项目组有新成员(经验稍微薄弱)情况下。

需要了解

看下面的代码之前,如果您是angular使用者+gulp使用者,为了更好的理解下面的代码,你可能需要了解以下东西:node、npm、node_modules、gulp。

如果您不使用angular或者gulp,也没有太大关系,你可以通过我肤浅的解释来理解一些批处理相关的操作,以应用到其他用途。

示例&&解释


// 关闭回显,加上这句,当前执行的命令不会显示(即,下面这些代码不会显示在屏幕上)
@echo off

// 读取run_config.txt文件第一行数据,以参数domain存储,然后跳转到secondArgs命令执行
// 我这么写不可取,跳转secondArgs命令主要用于读取第二行数据
for /f %%i in (run_config.txt) do (
set domain=%%i
goto secondArgs
)

// 读取第二行数据以参数dir存储
:secondArgs
for /f %%i in (run_config.txt) do (
set dir=%%i
)

// 输出参数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
// 以命令选择的形式,给使用者选择的权利,其中将各个项目(各应用)需要的打包分离出来,分别对应相应的自动化构建脚本命令
// 以字母RCAPMQ一一对应,例如输入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
// 用于进入对应的盘符
%domain%
// 用于进入对应的项目目录
cd%dir%
// 执行当前目录下的gulp命令
node %domain%%dir%node_modulesgulpbingulp.js
echo -----------------------------ROOT PROCESS FINISHED!----------------------------
// 跳转begin命令,可以让使用者进行下一次使用