如何在Gulp任务中拆分文件

How to split files in Gulp task

本文关键字:拆分 文件 任务 Gulp      更新时间:2023-09-26

例如,我在mydata.json 中有一些数组

[
  {
    "name": "item1",
    "description": "bla bla bla"
  },
  {
    "name": "item2",
    "description": "lorem lorem lorem"
  },
  {
    "name": "item3",
    "description": "ipsum ipsum ipsum"
  },
]

我需要将mydata.json拆分为三个文件:item1.jsonitem2.jsonitem3.json

我要在我的Gulp任务中添加什么?

gulp.task('mytask', function () {
  return gulp.src("src/mydata.json")
    .pipe( ??? )
    .pipe(gulp.dest('./dist'));
});

这不会是性能最好的解决方案,因为一切都是同步完成的,而且它有点超出了典型的gullow工作流。如果这是一个问题,可以将其修改为使用所有异步方法。好处是你可以使用它,而不必编写新的插件。

var fs = require('fs');
gulp.task('mytask', function(done) {
    var data = require('src/mydata.json');
    console.log('about to write files...')
    data.forEach(function(item) {
        var fileName = item.name + '.json';
        var fileContents = JSON.stringify(item);
        fs.writeFileSync(fileName, fileContents);
        console.log('saved file: ', fileName);
    });
    // let gulp know the task is complete
    done();
});

将任务分解为不同的文件。然后在我们的gullfile.js文件中,您需要这些文件。gullfile.js

require('./gulp/tasks/styles');
require('./gulp/tasks/watch');

然后在styles.js和watch.js文件中添加gull.task,并在顶部添加所需文件。