gulp 添加管道以转换为 Vinyl 对象
gulp add pipe to convert to Vinyl objects
我已经升级到gulp 4.0.2
版本我需要更新其中一项任务
const debug = require('gulp-debug');
const i18nextParser = require('i18next-parser');
function myTask() {
return gulp
.src(['./js/**/*.js', './js/**/*.jsx'])
.pipe(
i18nextParser({
locales: ['en', 'de'],
functions: ['translate'],
output: '/opt/locales/'
})
)
.pipe(debug())
.pipe(gulp.dest('/opt/locales/'));
});
我希望将这些文件转换为 Vinyl 对象:
[17:04:32] gulp-debug: opt/locales/de/translation.json
[17:04:32] gulp-debug: opt/locales/de/translation_old.json
[17:04:32] gulp-debug: opt/locales/en/translation.json
[17:04:32] gulp-debug: opt/locales/en/translation_old.json
否则我有错误
Error: Received a non-Vinyl object in `dest()`
是否有我可以通过管道连接到的函数以使此任务正常工作?
i18next-parser
版本为 0.7.0
。升级到最新的 3.6.0
版本根本不会产生任何输出。
所以我通过使用 gulp-map
添加额外的步骤解决了这个问题
const map = require('gulp-map');
const Vinyl = require('vinyl');
return gulp
.src(['./js/*.js', './js/*.jsx'])
.pipe(
i18nextParser({
locales: ['en', 'de'],
functions: ['translate'],
output: JSON_DIR
})
)
.pipe(map(function(file) {
// Explicitly convert to Vinyl object otherwise `gulp.dest()` will fail
return new Vinyl(file);
}))
.pipe(gulp.dest(JSON_DIR));
我已经升级到gulp 4.0.2
版本我需要更新其中一项任务
const debug = require('gulp-debug');
const i18nextParser = require('i18next-parser');
function myTask() {
return gulp
.src(['./js/**/*.js', './js/**/*.jsx'])
.pipe(
i18nextParser({
locales: ['en', 'de'],
functions: ['translate'],
output: '/opt/locales/'
})
)
.pipe(debug())
.pipe(gulp.dest('/opt/locales/'));
});
我希望将这些文件转换为 Vinyl 对象:
[17:04:32] gulp-debug: opt/locales/de/translation.json
[17:04:32] gulp-debug: opt/locales/de/translation_old.json
[17:04:32] gulp-debug: opt/locales/en/translation.json
[17:04:32] gulp-debug: opt/locales/en/translation_old.json
否则我有错误
Error: Received a non-Vinyl object in `dest()`
是否有我可以通过管道连接到的函数以使此任务正常工作?
i18next-parser
版本为 0.7.0
。升级到最新的 3.6.0
版本根本不会产生任何输出。
所以我通过使用 gulp-map
添加额外的步骤解决了这个问题const map = require('gulp-map');
const Vinyl = require('vinyl');
return gulp
.src(['./js/*.js', './js/*.jsx'])
.pipe(
i18nextParser({
locales: ['en', 'de'],
functions: ['translate'],
output: JSON_DIR
})
)
.pipe(map(function(file) {
// Explicitly convert to Vinyl object otherwise `gulp.dest()` will fail
return new Vinyl(file);
}))
.pipe(gulp.dest(JSON_DIR));