gpt4 book ai didi

javascript - Gulp:合并文件

转载 作者:行者123 更新时间:2023-11-30 15:12:17 24 4
gpt4 key购买 nike

我有以下项目结构:

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

有什么建议吗?

最佳答案

您可以尝试将每个语言环境文件夹处理到它自己的 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);
});

关于javascript - Gulp:合并文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44942890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com