执行此操作的新方法使控制台输出保持不变(例如,使用颜色):
看到: https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
var gulp = require('gulp'); var spawn = require('child_process').spawn; gulp.task('my-task', function (cb) { var cmd = spawn('cmd', ['arg1', 'agr2'], {stdio: 'inherit'}); cmd.on('close', function (code) { console.log('my-task exited with code ' + code); cb(code); }); });
gulp-shell 已被列入黑名单。你应该用 吞掉-EXEC 相反,它也有更好的文档。
gulp-shell
对于你的情况,它实际上说:
注意:如果您只想运行命令,只需运行命令,不要使用此插件:
var exec = require('child_process').exec; gulp.task('task', function (cb) { exec('ping localhost', function (err, stdout, stderr) { console.log(stdout); console.log(stderr); cb(err); }); })
同 吞咽4 您的任务可以直接返回子进程以指示任务完成:
'use strict'; var cp = require('child_process'); var gulp = require('gulp'); gulp.task('reset', function() { return cp.execFile('git checkout -- .'); });
https://github.com/gulpjs/gulp/blob/4.0/docs/recipes/running-shell-commands.md