2014-08-28 14 views
11

Sto cercando di includere un file in gulp solo se esiste, quando sto compilando, per lo sviluppo. Attualmente ho il seguente:Includere solo se esiste

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

Ho bisogno di aggiungere un altro file a questo array, ma solo se quel file esiste. Ho visto gulp-if Ma non penso che abbia le capacità che sto cercando.

Vorrei anche avvertire lo sviluppatore che questo file non esiste, durante la compilazione per lo sviluppo nella console.

risposta

16

Gulp è solo un'applicazione nodo, quindi è possibile utilizzare qualsiasi funzione del nodo nel file gulp. Si può facilmente verificare l'esistenza di un file utilizzando 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

Potete fornire un esempio su come si potrebbe usare questo in un compito sorso per compilare js? – user3379926

+1

risposta sicura e modificata. –

+1

Le prime opzioni in 'gulp.src' possono essere' String' o 'Array' e i file non esistenti vengono ignorati, quindi penso che questo possa essere semplificato in' gulp.src (['src/js/** /*.js ',' percorso/su/altro/file ']) ' –

Problemi correlati