如何在gulp中运行bash命令?
我想在gulp.watch
函数的最后添加一些bash命令来加快我的开发速度。 所以,我想知道是否有可能。 谢谢!
使用https://www.npmjs.org/package/gulp-shell 。
一个方便的命令行界面吞咽
我会去:
var spawn = require('child_process').spawn; var gutil = require('gulp-util'); gulp.task('default', function(){ gulp.watch('*.js', function(e) { // Do run some gulp tasks here // ... // Finally execute your script below - here "ls -lA" var child = spawn("ls", ["-lA"], {cwd: process.cwd()}), stdout = '', stderr = ''; child.stdout.setEncoding('utf8'); child.stdout.on('data', function (data) { stdout += data; gutil.log(data); }); child.stderr.setEncoding('utf8'); child.stderr.on('data', function (data) { stderr += data; gutil.log(gutil.colors.red(data)); gutil.beep(); }); child.on('close', function(code) { gutil.log("Done with exit code", code); gutil.log("You access complete stdout and stderr from here"); // stdout, stderr }); }); });
这里没有真正的“吞食” – 主要是使用subprocesshttp://nodejs.org/api/child_process.html并将结果伪装成gulp-util日志
最简单的解决scheme就像:
var child = require('child_process'); var gulp = require('gulp'); gulp.task('launch-ls',function(done) { child.spawn('ls', [ '-la'], { stdio: 'inherit' }); });
它不使用节点stream和吞咽pipe,但它会做的工作。