我有工作的代码,它做的正是我想要的,但我不满意我所使用的方法,因为它没有很好的伸缩性。
假设我想依次执行4个命令来克隆一个repo并将一个版本 checkout 到本地文件夹:
//shell command
var cmd = "cd /Users/xxxx/Documents/DESIGN" +
" && git clone https://github.com/xxxx/xxxx.git testing" +
" && cd testing" +
" && git checkout 4.0";
//execute shell command
var exec = require("child_process").exec;
exec(cmd, function(err, stdout, stderr){
if (err) console.log(err);
console.log(stdout);
});
有没有一种方法可以干净地执行多个命令,并使其更具可伸缩性,而不需要通过&&
向原始命令字符串中添加更多的命令来连接它们?
1条答案
按热度按时间bnl4lu3b1#
你可以做很多事情。最简单的一个是使用execSync,一个接一个地执行命令。
因为您需要一个接一个地执行命令,这将是我所采用的解决方案。
如果您想坚持异步模式,请使用控制流库,如step或async。
你甚至可以用bluebird这样的库来承诺exec。
这完全取决于个人的编码偏好和需要执行的任务。