2015-02-26 13 views
5

Perché il secondo array, bowerFiles, non viene filtrato solo per i file javascript.gulp main-bower-file filtro di espressione regolare non funzionante

var gulp = require('gulp'); 
var mainBowerFiles = require('main-bower-files'); 

gulp.task('default', function() { 

    var unfiltered = mainBowerFiles(); 
    console.log('unfiltered files:', unfiltered); // 11 FILES 

    //var jsRegEx = /js$/i; // tried this way too... 
    var jsRegEx = new RegExp('js$', 'i'); 
    var bowerFiles = mainBowerFiles(jsRegEx); 
    console.log('bower files:', bowerFiles); // 11 FILES 

}); 

ho cercato di imitare ciò che Bower-main-files sta facendo here, e funziona.

risposta

10

Non è necessario creare un RegExp per filtrare i file con main-bower-files.

In effetti, si può semplicemente passare un array o una stringa di glob per controllare solo per .js file:

gulp.task('default', function() { 
    var bowerFiles = mainBowerFiles('**/*.js'); 
    console.log('bower files: ', bowerFiles); 
}); 

Se davvero si vuole utilizzare l'espressione regolare, è necessario utilizzare l'opzione filter, è possibile 't passare direttamente come argomento:

gulp.task('default', function() { 
    var bowerFiles = mainBowerFiles({ filter: new RegExp('.*js$', 'i') }); 
    console.log('bower files: ', bowerFiles); 
}); 
+0

sto provando questo e ottenere 'Invalid argument glob: (mainBowerFiles ([object Object]' 'gulp.src'. **/* js'))' – Jackie

+0

nm https://github.com/ck86/main-bower-files/issues/1 – Jackie