问题
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'",
}
回答1:
Assuming you're on Linux, you can use sleep command:
"dev": "concurrently 'npm run server' 'sleep 5 && npm run client'"
回答2:
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.
回答3:
Use Sleep and Background tasks.
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"
来源:https://stackoverflow.com/questions/46561608/wait-seconds-before-running-next-task-on-scripts-package-jscon