I have a .bat script that operates this way:
- Launches build scripts for each webpack project in a directory
- Waits 30 seconds
- Runs the server hosting the project
- Opens Chrome with a tab for every project
I would like to avoid to wait 30 seconds and run the server as soon as all building processes have ended. How can I do this?
This is the code of my batch script:
@echo off
cd webapp
setlocal enabledelayedexpansion
set params=
FOR /D %%G IN ("*") DO (
 cd %%G
 @echo on
 svn update
 call npm install
 start /B npm run dev
 @echo off
 set params=!params! http://localhost:9000/%%G
 cd ..
)
cd ..
timeout /t 30 /nobreak
@echo on
start /B node core/server.js
start chrome /new-window !params!
EDIT: the very difficult thing here is that npm run dev is a non-ending process: it keeps alive and keeps watching for changes in code. This is its code:
node_modules/.bin/webpack --config dev.config.js --watch
EDIT N.2:
To know when build process ends (@SomethingDark) I can change my code like this:
@echo off
cd webapp
setlocal enabledelayedexpansion
#here I don't have the watch option, so it closes on build finished
set params=
FOR /D %%G IN ("*") DO (
 cd %%G
 @echo on
 svn update
 call npm install
 start /B npm run build-dev
 @echo off
 set params=!params! http://localhost:9000/%%G
 cd ..
)
cd ..
timeout /t 30 /nobreak
@echo on
start /B node core/server.js
start chrome /new-window !params!
    #here I have the watch option, so it keeps alive
    FOR /D %%G IN ("*") DO (
     cd %%G
     @echo on
     start /B npm run dev
     @echo off
     cd ..
    )
 
    