2014-08-28 21 views
11

Ich bin auf der Suche nach eine Datei in Schluck nur wenn es existiert, wenn ich kompiliere, für die Entwicklung. Derzeit habe ich folgendes:Nur enthalten, wenn vorhanden

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

Ich muss eine andere Datei zu diesem Array hinzufügen, aber nur wenn diese Datei existiert. Ich habe gulp-if gesehen Aber ich denke nicht, dass das die Fähigkeit hat, die ich suche.

Ich möchte auch den Entwickler warnen, dass diese Datei nicht existiert, wenn für die Entwicklung in der Konsole kompiliert wird.

Antwort

16

Gulp ist nur eine Knotenanwendung, Sie können also alle Knotenfunktionen in Ihrer gulpfile verwenden. Sie können ganz einfach Existenz einer Datei 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/')) 
}); 
+0

mit überprüfen Können Sie in ein Beispiel geben, wie man dies in einem Zug Aufgabe verwenden würde js zu kompilieren? – user3379926

+1

sicher, bearbeitete Antwort. –

+1

Die ersten Optionen in 'gulp.src' können entweder' String' oder 'Array' sein und nicht existierende Dateien werden ignoriert, daher denke ich, dass dies vereinfacht zu' gulp.src (['src/js/** /*.js ',' path/to/other/file ']) ' –

Verwandte Themen