Включать только если существует

Я хочу включить файл в 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

Gulp - это просто приложение node, поэтому вы можете использовать любые функции node в вашем 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/'))
});