在gulp任务中获取变量的* .json文件名

时间:2016-10-26 13:21:53

标签: json path gulp

我在每个目录中都有home.json,contact.json,case.json等结构,我将其合并为一个,就像home-combined.json一样。

我需要获取*.json的文件名以将fileName设置为*-combined.json,我使用此pageName变量来获取文件的名称但结果是{{1}而不是*-combined.json

home-combined.json

1 个答案:

答案 0 :(得分:0)

如果您尝试这样做,我将执行以下操作,而不是您正在执行的操作:

home.json

{
  one: 1
}

other.json

{
  two: 2
}

你希望得到: 家庭combined.json

{
  one: 1,
  two: 2
}

使用此gulp模块https://www.npmjs.com/package/gulp-merge-json

您的案例中的一个例子是:

 var jsonmerge = require('gulp-merge-json');
 var paths = require('./pathsFile.json');

 /*
  Basic functionality
 */
 gulp.task('json-merge', function(){
   return gulp.src('jsonFiles/**/*.json')
          .pipe(jsonmerge('home-combined.json')) 
          .pipe(gulp.dest(paths.json.dest));
 });

这里唯一的区别是您不需要指定要解析的文件的名称。

不确定这是否能解答您的问题,但如果您指定了所需内容,我可以编辑我的回复。

- 编辑 要通过gulp从不同目录中获取文件,您可以指定流的来源,例如:

  return gulp.src([dir1 + 'jsonFiles/**/*.json', 
                   dir2 + 'jsonFiles/**/*.json', 
                   dir3 + 'jsonFiles/**/*.json'])