gulp main-bower-files正则expression式filter不工作

为什么第二个数组bowerFiles没有被过滤到JavaScript文件。

 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 }); 

我试图模仿这里的 bower-main-files在做什么,而且工作。

您不需要创buildRegExp来过滤包含main-bower-files的文件 。

事实上,您可以简单地传递一个数组或者一串glob来仅检查.js文件:

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

如果你真的想使用正则expression式,你必须使用filter选项,你不能直接传递它作为参数:

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