javascript - gulp main-bower-files 正则表达式过滤器不起作用

标签 javascript regex node.js gulp bower

为什么第二个数组 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 正在做什么 here , 并且有效。

最佳答案

您不需要创建 RegExp 来过滤带有 main-bower-files 的文件.

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

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

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

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

关于javascript - gulp main-bower-files 正则表达式过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28749749/

相关文章:

javascript - 如何解决浏览器端AJAX请求无法向本地服务器发送数据的问题?

javascript - ASp.Net 方法 web.DownloadString() 的等效 javascript 函数

javascript - 如何使用 javascript 获取输入字段中的值以在 sharepoint 中进行编辑

javascript - ng 隐藏 Angular js 中的问题

javascript - 刷新后,firebase Auth当前用户返回null

python - python 中的正则表达式 : replace multiple occurrences of comma between double quotes

java - java 中的正则表达式和 ISO-8859-1 字符集

mysql - 从数据库中的表中选择的正则表达式

c++ - 将数字元素传递给对象

node.js - NodeJS中promise如何通过多层回调解析所有数据