如何在 Gulp 任务中拆分文件
How to split files in Gulp task
例如,我在 mydata.json
中有一些数组
[
{
"name": "item1",
"description": "bla bla bla"
},
{
"name": "item2",
"description": "lorem lorem lorem"
},
{
"name": "item3",
"description": "ipsum ipsum ipsum"
},
]
我需要将 mydata.json
拆分为三个文件:item1.json
、item2.json
和 item3.json
。
我必须向我的 Gulp 任务添加什么?
gulp.task('mytask', function () {
return gulp.src("src/mydata.json")
.pipe( ??? )
.pipe(gulp.dest('./dist'));
});
这不会是性能最高的解决方案,因为所有事情都是同步完成的,并且有点超出了典型的 gulp 工作流程。如果这是一个问题,可以将其修改为使用所有异步方法。好处是您无需编写新插件即可使用它。
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();
});
将您的任务分解成单独的文件。然后在我们的 gulpfile.js 文件中,您需要这些文件。
gulpfile.js
require('./gulp/tasks/styles');
require('./gulp/tasks/watch');
然后在您的 styles.js 和 watch.js 文件中添加您的 gulp.task 并在顶部添加所需的文件。
例如,我在 mydata.json
[
{
"name": "item1",
"description": "bla bla bla"
},
{
"name": "item2",
"description": "lorem lorem lorem"
},
{
"name": "item3",
"description": "ipsum ipsum ipsum"
},
]
我需要将 mydata.json
拆分为三个文件:item1.json
、item2.json
和 item3.json
。
我必须向我的 Gulp 任务添加什么?
gulp.task('mytask', function () {
return gulp.src("src/mydata.json")
.pipe( ??? )
.pipe(gulp.dest('./dist'));
});
这不会是性能最高的解决方案,因为所有事情都是同步完成的,并且有点超出了典型的 gulp 工作流程。如果这是一个问题,可以将其修改为使用所有异步方法。好处是您无需编写新插件即可使用它。
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();
});
将您的任务分解成单独的文件。然后在我们的 gulpfile.js 文件中,您需要这些文件。 gulpfile.js
require('./gulp/tasks/styles');
require('./gulp/tasks/watch');
然后在您的 styles.js 和 watch.js 文件中添加您的 gulp.task 并在顶部添加所需的文件。