如何使用Gulpjs检查src流是否为空?

时间:2016-03-08 03:00:47

标签: javascript gulp

我有一个选择和复制目标环境相关配置文件的任务。

var environment = process.env.NODE_ENV
        || (gulputil.env.environment || 'production');
process.env.NODE_ENV = environment;

// copies ./src/configs/default-<environment>.json to ./dst/configs/default.json
gulp.task('config-default', function () {
  return gulp.src([paths.src + '/configs/default-' + environment + '.json'])
          .pipe(gulpdebug({title: 'config-default'}))
          .pipe(gulprename('default.json'))
          .pipe(gulp.dest(paths.dst_configs));
});

它打算如下工作。

$ echo NODE_ENV

$ gulp
environment: production
...
$ gulp --environment staging
environment: staging
...
$ export NODE_ENV=production
$ echo $NODE_ENV
production
$ gulp
environment: production
$

如何检查其他人是否指定了错误的环境变量,因此没有文件configs/default-<specified>.json

$ gulp --environment integration
there is no configs/default-integration.json
$

1 个答案:

答案 0 :(得分:2)

最简单的方法是事先检查文件是否存在:

var glob = require('glob');

gulp.task('config-default', function (done) {
  var configFile = paths.src + '/configs/default-' + environment + '.json';

  if (glob.sync(configFile).length == 0) {
    done('there is no ' + configFile);
    return;
  }

  return gulp.src([configFile])
      .pipe(gulpdebug({title: 'config-default'}))
      .pipe(gulprename('default.json'))
      .pipe(gulp.dest(paths.dst_configs));
});