const spawn = require('child_process').spawn; const repositories = ['fineui', 'fineui-materials']; update(repositories); function update(repositories, index = 0) { if (index === repositories.length) { return; } const repository = repositories[index]; const ls = spawn(`yarn`, ['upgrade', `${repository}`]); ls.stdout.on('data', data => { console.log(data.toString()); }); ls.stderr.on('data', data => { console.log(data.toString()); }); ls.on('exit', code => { console.log(`${repository} child process exited with code `, code.toString()); update(repositories, index + 1); }); }