GulpJs - 将 browserify、reactify 和 rewireify 添加到 karma gulp 任务

GulpJs - add browserify, reactify and rewireify to karma gulp task

我目前使用以下命令

然后:

karma start

我每次更改代码时都必须运行。任何人都可以告诉我如何在手表任务中设置它以便每次保存时都这样做吗?

非常感谢

编辑:

gulp-concat 会是一个选项吗,像这样?

gulp.task('test', function () {
gulp.src([
    './App/src/tests/**/*.js'
]).pipe(concat('suites.js'))
    .pipe(rewireify())
    .pipe(reactify())
    .pipe(gulp.dest('./App/src/tests/concatBundle.js'))
    .pipe(karma({
        configFile: 'karma.conf.js',
        action: 'run'
    }))
    .on('error', function(err) {
        throw err;
    });
});

GulpJs 只是一堆用 Node 编写的代码,因此您可以在 gulp 文件中使用任何 Node 代码。您可以使用 child_process.spawn 到 运行 任意命令。例如,您可以在监视任务中包含如下内容。 Node documentation

var spawn = require('child_process').spawn,
    cmd = spawn('browserify', ['-e', 'app/src/tests/suites.js', '-t', 'reactify', '-t', <... list each arg as an array item ...>] );

spawn.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

spawn.stderr.on('data', function (data) {
  console.log('stderr: ' + data);
});

spawn.on('close', function (code) {
  console.log('child process exited with code ' + code);
  //Your command is finished here... so you could kick off another command like 'karma start'
});