变量目录后跟已知的目录

时间:2014-09-10 17:10:15

标签: gulp

我想复制

中的所有文件
/plugins/system/name/language/en—GB/*   into /language/en-GB/*
/plugins/test/whatever/language/fr-FR/* into /language/fr-FR/*

我试过了

gulp.task('copy:plugins:lang', function () {
    return gulp.src('./plugins/**/**/language')
        .pipe(gulp.dest('language'));
});

但是它会复制language目录

中的目录
/language/system/name/language/en—GB/* 
/language/test/whatever/language/fr-FR/*  

我曾尝试压扁()文件但是直接复制到language文件夹而不是en-GBfr-FR

请注意,en-GBfr-FR是可变的,也可能是pt-BR。使用占位符,我想要实现的是复制所有文件,如:

/plugins/{type}/{name}/language/{locale}/*  

/language/{locale}/*

1 个答案:

答案 0 :(得分:1)

我认为您可以使用gulp-renamepath来实现您想要的效果。如果可以安全地假设每个语言环境目录中没有目录,则可以使用:

var rename = require('gulp-rename');
var path = require('path');

gulp.task('copy:plugins:lang', function () {
  return gulp.src('./plugins/**/language')
    .pipe(rename(function(file) {
       file.dirname = path.basename(file.dirname);
    }))
    .pipe(gulp.dest('language'));
});

否则,您可能需要对file.dirname进行更复杂的转换。