gulp main-bower-files正则表达式过滤器不工作 [英] gulp main-bower-files regular expression filter not working

查看:129
本文介绍了gulp main-bower-files正则表达式过滤器不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  var gulp = require('gulp'); 
var mainBowerFiles = require('main-bower-files');
$ b gulp.task('default',function(){

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

// var jsRegEx = / js $ / i; //试试这样...
var jsRegEx = new RegExp('js $',' i');
var bowerFiles = mainBowerFiles(jsRegEx);
console.log('bower files:',bowerFiles); // 11文件

});

我试图模仿bower-main-files在做什么 here ,它有效。 不需要创建 RegExp 来过滤 main-bower-files



确实,您只需传递数组或字符串来检查 .js files:

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

如果您确实想使用正则表达式,您必须使用过滤器选项,您不能直接将其作为参数传递:

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


Why is the second array, bowerFiles, not filtered to just javascript files.

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

});

I have tried to mimic what bower-main-files is doing here, and it works.

解决方案

You don't need to create a RegExp to filter for files with main-bower-files.

Indeed, you can simply pass an array or a string of glob to check only for .js files:

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

If you really want to use the regex, you have to use the filter option, you can't directly pass it as an argument:

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

这篇关于gulp main-bower-files正则表达式过滤器不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆