如何在Gulp中轻松运行系统shell任务/命令?

时间:2016-05-12 12:35:20

标签: node.js shell gulp child-process

我考虑过以下选项:

使用gulp-shell:该插件已被弃用且错误

使用gulp-exec:似乎与我没用的gulp-stream绑在一起。我不确定如何使用它来运行单个任务,作者甚至声称,你不应该只使用它来运行一个任务。

使用child_process.exec虽然这是gulp-exec的作者推荐的,但解决方案看起来很糟糕有两个原因:a)stdout和stderr不会逐步打印到控制台,只能作为缓冲区/字符串访问在子进程结束后。 b)如果进程产生太多控制台输出,则超出缓冲区限制并且exec崩溃。这意味着,除非您100%确定,您的流程可以产生多少输出,否则您不应该使用它。

使用child_process.spawn虽然有点冗长,但这是我迄今为止发现的最好的:

gulp.task('list', (cb) => {
  childProcess.spawn('find', ['/'], { stdio: 'inherit' }).on('close', cb);
});

0 个答案:

没有答案