Gulp 仅在存在时包含

Gulp 仅在存在时包含,gulp,Gulp,我希望在gulp中包含一个文件,只要它存在,当我编译时,用于开发。目前我有以下几点: gulp.task('compile:js:development', function() { return gulp.src([ 'src/js/**/*.js', ]).pipe(concat('dist.js')) .pipe(gulp.dest('compiled/js/')) }); 我需要向该数组中添加另一个文件,但前提是该文件存在。我见过吞咽if,但我认为那没有我想要的

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

gulp.task('compile:js:development', function() {
  return gulp.src([
    'src/js/**/*.js',
  ]).pipe(concat('dist.js'))
    .pipe(gulp.dest('compiled/js/'))
});
我需要向该数组中添加另一个文件,但前提是该文件存在。我见过
吞咽if
,但我认为那没有我想要的能力


我还想提醒开发人员,在控制台中编译以进行开发时,此文件不存在

Gulp只是一个节点应用程序,因此您可以使用gulpfile中的任何节点函数。您可以使用


你能举个例子说明如何在gulp任务中使用它来编译js吗?
gulp.src
中的第一个选项可以是
字符串
数组
,不存在的文件被忽略,所以我认为这可以简化为
gulp.src(['src/js/***.js','path/to/other/file']))
@PaoloMoretti,那就行了。但是OP说如果文件不存在,他们想警告开发者。@BrianGlaz哦,对不起,我没听清楚。在这种情况下,我想您必须手动检查文件是否存在。您也可以使用:)
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/'))
});