Задача gulp, которая динамически создает папку с именем на основе имени файла

У меня есть следующее задание глотка, которое в настоящее время не работает.

gulp.task('emails', function() {
  gulp.src('views/emails/src/**/*.html')
    .pipe(inky())
    .pipe(gulp.dest('views/emails/dist/'+debug()+"/html.ejs"));
});

Я хотел бы перебрать каталог /views/emails/src/, найти все html-файлы, затем использовать inky, чтобы преобразовать их в html, а затем скопировать полученный html-файл в...

views/emails/dist/'+ folderName +"/html.ejs

где имя_папки - это имя файла.html, который был обработан.

Мне это нужно для того, чтобы получить файловую структуру в формате, который требует пакет почтовых шаблонов npm.

1 ответ

Решение

Это работа для gulp-rename:

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

gulp.task('emails', function() {
  gulp.src('views/emails/src/**/*.html')
    .pipe(inky())
    .pipe(rename(function(file) {
      file.dirname = path.join(file.dirname, file.basename);
      file.basename = 'html';
      file.extname = '.ejs';
    }))
    .pipe(gulp.dest('views/emails/dist/'));
});
Другие вопросы по тегам