我想从gulp运行一个shell命令,使用gulp-shell.我看到以下习惯用于gulpfile.
这是从gulp任务运行命令的惯用方法吗?
var cmd = 'ls';
gulp.src('', {read: false})
.pipe(shell(cmd, {quiet: true}))
.on('error', function (err) {
gutil.log(err);
});
Run Code Online (Sandbox Code Playgroud)
ddp*_*rrt 102
gulp-shell已被列入黑名单.你应该使用gulp-exec代替,它也有更好的文档.
对于你的情况,它实际上说:
注意:如果您只想运行命令,只需运行命令,不要使用此插件:
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);
});
})
Run Code Online (Sandbox Code Playgroud)
Aut*_*nge 40
执行此操作的新方法使控制台输出保持相同(例如,使用颜色):
请参阅: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);
});
});Run Code Online (Sandbox Code Playgroud)
bir*_*aum 14
使用gulp 4,您的任务可以直接返回子进程以指示任务完成:
'use strict';
var cp = require('child_process');
var gulp = require('gulp');
gulp.task('reset', function() {
return cp.execFile('git checkout -- .');
});
Run Code Online (Sandbox Code Playgroud)
https://github.com/gulpjs/gulp/blob/4.0/docs/recipes/running-shell-commands.md
| 归档时间: |
|
| 查看次数: |
58436 次 |
| 最近记录: |