如何在gulp中运行bash命令?

wyyhbhjk  于 2023-11-15  发布在  Gulp
关注(0)|答案(3)|浏览(201)

我想在gulp.watch函数的末尾添加一些bash命令来加快我的开发速度。所以,我想知道是否可以。谢谢!

eufgjt7s

eufgjt7s1#

我会说:

var spawn = require('child_process').spawn;
var fancyLog = require('fancy-log');
var beeper = require('beeper');

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;
            fancyLog(data);
        });

        child.stderr.setEncoding('utf8');
        child.stderr.on('data', function (data) {
            stderr += data;
            fancyLog.error(data));
            beeper();
        });

        child.on('close', function(code) {
            fancyLog("Done with exit code", code);
            fancyLog("You access complete stdout and stderr from here"); // stdout, stderr
        });

    });
});

字符串
这里没有什么真正的“吞”-主要是使用子进程http://nodejs.org/api/child_process.html并将结果欺骗到fancy-log中

dfty9e19

dfty9e192#

请使用https://www.npmjs.org/package/gulp-shell
用于Gulp方便的命令行界面

pkmbmrz7

pkmbmrz73#

最简单的解决方案很简单:

var child = require('child_process');
var gulp   = require('gulp');

gulp.task('launch-ls',function(done) {
   child.spawn('ls', [ '-la'], { stdio: 'inherit' });
   done();
});

字符串
它不使用节点流和gulp管道,但它会做的工作。

相关问题