Как скомпилировать файл и сохранить ту же структуру папок, используя gulp? - PullRequest
0 голосов
/ 01 мая 2018

Я хочу скомпилировать все файлы мопса.

Вот моя структура папок src

src
  pug
    a
      a.pug
    b
      b.pug

Я хочу, чтобы gulp компилировал все файлы pug, но в папке dest сохранялась структура папок.

Это должна быть структура папки dest

dest
  a
    a.html
  b
    b.html

Я пытался использовать этот код, но он не работает, место, куда он отправляет все файлы HTML: dest/src/pug.

function getFolders(dir) {
  return fs.readdirSync(dir).filter(function(file) {
    return fs.statSync(path.join(dir, file)).isDirectory();
  });
}

var pugPath = "src/pug";

gulp.task("html", function() {
  var folders = getFolders(pugPath);
  var tasks = folders.map(function(folder) {
    return gulp
      .src([
        path.join(pugPath, folder, "src/pug/**/*.pug"),
        "!" + pugPath + "/includes/**/*.pug"
      ])
      .pipe(pug())
      .pipe(gulp.dest(paths.dest.html));
  });

  var root = gulp
    .src(path.join(pugPath, "src/pug/**/*.pug"))
    .pipe(pug())
    .pipe(gulp.dest(paths.dest.html));

  return merge(tasks, root);
});

1 Ответ

0 голосов
/ 01 мая 2018

Похоже, что большую часть этого кода можно было бы отбросить, если бы вы использовали глоб, например, src / pug / ** / *. Pug, чтобы рекурсивно получить все файлы в папке, а затем направить в dest ('test'). То, как вы комбинируете папки, наиболее вероятно в случае ошибки.

gulp.task("html", function() {
  return gulp.src([ 'src/pug/**/*.pug', '!src/pug/includes/**/*.pug' ])
    .pipe(pug())
    .pipe(gulp.dest('test'));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...