从Gulp目录中获取一个没有扩展名的文件名数组?

时间:2015-06-03 15:03:56

标签: npm gulp

我想将2个目录(helpers/dialogs/)中的每个文件名放入数组 ,而不使用文件扩展名 Gulp和/或NPM。请注意,数组将预先填充值 - 我需要文件名附加到此数组。

换句话说,我的目录结构是这样的:

helpers/
    a.js
    b.js
    c.js
dialogs/
    x.js
    y.js
    z.js

我有这个:

var modules = ['main-module'];

我需要根据以下目录填充我的数组:

var modules = ['main-module', 'a', 'b', 'c', 'x', 'y', 'z'];

我该怎么做?

我尝试使用fs模块fs.readdirSyncgulp-rename,但如果可能的话,在单个流操作中完成此任务会很不错。

将每个目录放入其自己的数组以进行其他操作也很有用 - 换句话说,根据目录输出组合数组和2个单独的数组(总共3个数组)。

var modules = ['main-module', 'a', 'b', 'c', 'x', 'y', 'z'];
var helpers = ['a', 'b', 'c'];
var dialogs = ['x', 'y', 'z'];

1 个答案:

答案 0 :(得分:6)

您可以使用glob轻松完成此操作,这是一个可以满足您需求的代码。

var glob = require('glob');
var path = require('path');

var modules = ['main-module'];
var helpers = [];
var dialogs = [];

glob.sync("@(helpers|dialogs)/*.js")
.forEach(function(file) {
  var module = path.basename(file, path.extname(file))
  modules.push(module);

  switch(path.dirname(file)) {
    case 'helpers':
      helpers.push(module);
      break;
    case 'dialogs':
      dialogs.push(module);
      break;
  }
});