git 在节点中同步执行多个shell命令

rvpgvaaj  于 2022-11-27  发布在  Git
关注(0)|答案(1)|浏览(181)

我有工作的代码,它做的正是我想要的,但我不满意我所使用的方法,因为它没有很好的伸缩性。
假设我想依次执行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);
});

有没有一种方法可以干净地执行多个命令,并使其更具可伸缩性,而不需要通过&&向原始命令字符串中添加更多的命令来连接它们?

bnl4lu3b

bnl4lu3b1#

你可以做很多事情。最简单的一个是使用execSync,一个接一个地执行命令。
因为您需要一个接一个地执行命令,这将是我所采用的解决方案。
如果您想坚持异步模式,请使用控制流库,如stepasync
你甚至可以用bluebird这样的库来承诺exec。
这完全取决于个人的编码偏好和需要执行的任务。

相关问题