What I want to do is when I run npm run dev
to execute those both tasks I need to wait for 5 seconds until next task runs.
Run the npm run server
wait for 5 seconds and then npm run client
"scripts": {
"start": "node ./bin/www",
"server": "nodemon start",
"client": "gulp",
"dev": "concurrently 'npm run server' 'npm run client'",
}
Assuming you're on Linux, you can use sleep command:
"dev": "concurrently 'npm run server' 'sleep 5 && npm run client'"
Depending on what these tasks do, you might not need concurrently
. You might be able to get away with just using &
to run one of them as a background task.
The general pattern is as follows:
( sleep 5 && delayed_command ) & immediate_command
So in your case, it would look something like this:
"dev": "( sleep 5 && npm run client ) & npm run server"
If you don't want the output from one of the commands, you can add > /dev/null 2>&1
after the command, like this:
"dev": "( sleep 5 && npm run client > /dev/null 2>&1 ) & npm run server"
Adding to @TGrif answer, chain scripts with double ampersand && to execute them sequntially. So to execute sleep command first, put && after it and then write npm run client. So the second command(npm run client) will execute only when the first(sleep) is complete.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With