仅包含if存在

时间:2014-08-28 14:43:18

标签: gulp

我希望在gulp中包含一个文件,只要它存在,当我编译时,用于开发。目前我有以下内容:

gulp.task('compile:js:development', function() {
  return gulp.src([
    'src/js/**/*.js',
  ]).pipe(concat('dist.js'))
    .pipe(gulp.dest('compiled/js/'))
});

我需要在此数组中添加另一个文件,但前提是该文件存在。我见过gulp-if但我不认为我有能力寻找。

我还想警告开发人员在控制台中进行开发编译时,该文件不存在。

1 个答案:

答案 0 :(得分:18)

Gulp只是一个节点应用程序,因此您可以在gulpfile中使用任何节点函数。您可以使用fs.exists()

轻松检查文件是否存在
gulp.task('compile:js:development', function() {
  var fs = require('fs'),
      files = ['src/js/**/*.js'],
      extraFile = 'path/to/other/file';

  if (fs.existsSync(extraFile)) {
    files.push(extraFile);
  } else {
    console.log('FILE DOES NOT EXIST');
  }

  return gulp.src(files)
    .pipe(concat('dist.js'))
    .pipe(gulp.dest('compiled/js/'))
});