如何在Gulp中运行外部文件?

Tim*_*Tim 5 javascript node.js gulp

目前我正在使用"gulp-run"插件来运行.bat文件.该插件现已被弃用,我正在寻找现在执行.bat的最佳方法.

当前代码:

var gulp = require('gulp');
var run = require('gulp-run');

module.exports = function() {

    run('c:/xxx/xxx/runme.bat').exec();

};
Run Code Online (Sandbox Code Playgroud)

根据@cmrn建议的解决方案:

var exec = require('child_process').exec;
var batchLocation = 'c:/xxx/xxx/runme.bat';
gulp.task('task', function (cb) {
  exec(batchLocation, function (err, stdout, stderr) {
    console.log(stdout);
    console.log(stderr);
    cb(err);
  });
})
Run Code Online (Sandbox Code Playgroud)

cmr*_*mrn 7

如果您需要将脚本作为gulp流(即in pipe())的一部分运行,则可以使用gulp-exec.如果没有,您可以child_process.exec按照下面复制的gulp-exec README中的说明使用.

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)