我的项目结构如下:
my_app
├── gulpfile.js
├── package.json
└── source
└── locales
├ en
│ ├─ core.json
│ └─ ui.json
├ es
│ ├─ core.json
│ └─ ui.json
├ fr
│ ├─ core.json
│ └─ ui.json
├ ...目标:我想将每个语言目录中的文件合并为一个,即:
my_app
├── gulpfile.js
├── package.json
└── source
└── locales
├ en
│ └─ strings.json
├ es
│ └─ strings.json
├ fr
│ └─ strings.json
├ ...下面是我当前的gulp任务,它不是这样做的,而是合并所有文件:
var merge = require('gulp-merge-json');
...
gulp.src([
'source/locales/**/*.json',
'source/locales/**/*.json'
])
.pipe(merge({fileName: 'strings.json'}))
.pipe(gulp.dest('source/locales/'));但这使得目录结构如下所示:
my_app
├── gulpfile.js
├── package.json
└── source
└── locales
└ strings.json有什么建议吗?
发布于 2017-07-06 09:39:38
您可以尝试将每个区域设置文件夹处理为自己的gulp任务:
var fs = require('fs'),
path = require('path'),
gulp = require('gulp'),
merge = require('gulp-merge-json'),
comb = require('merge-stream');
function getLocales(dir) {
return fs.readdirSync(dir).filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
gulp.task('default', function() {
var locales = getLocales('source/locales');
var tasks = locales.map(function(locale) {
return gulp.src('source/locales/' + locale + '/*.json')
.pipe(merge({fileName: 'strings.json'}))
.pipe(gulp.dest('source/locales/' + locale));
});
return comb(tasks);
});https://stackoverflow.com/questions/44942890
复制相似问题