如何使用 gulp 编译文件并保持相同的文件夹结构?

雅舒米塔尔

我想编译所有的 pug 文件。

这是我的 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);
});
雅舒米塔尔

如果您使用像 src/pug/**/*.pug 这样的 glob 来递归地抓取文件夹中的所有文件,那么似乎大部分代码都可能会被丢弃 - 然后通过管道传输到 dest('test')。您组合文件夹的方式很可能是错误所在。

gulp.task("html", function() {
  return gulp.src([ 'src/pug/**/*.pug', '!src/pug/includes/**/*.pug' ])
    .pipe(pug())
    .pipe(gulp.dest('test'));
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Gulp复制多个文件并保持文件夹结构

如何使用 gulp 从位于文件夹结构中某处的确切文件夹复制文件

Gulp:如何读取文件夹名称?

Gulp:如何删除文件夹?

如何使用src和dest相同文件夹更改或更新的gulp?

如何使用Gulp通过SSH复制文件夹?

gulp如何在忽略某些模式的同时使用gulp同步文件夹

gulp 使用单个命令从多个 sass 文件夹编译多个 css?

Gulp:如何将多个 .pug 文件编译成文件夹内的多个 index.html 文件

编译 Gulp 到父文件夹

Gulp和FTP:如何仅传输文件夹的内容?

如何使gulp-jshint忽略文件夹

打字稿:如何仅编译文件夹中的文件

如何使用Gulp编译一堆sass文件并将其移动到另一个文件夹?

如何查看gulp文件?

如何使用gulp-zip指定zip目标文件夹名称

如何从dist文件夹中下载Azure管道中使用gulp脚本构建的工件

Gulp监视整个文件夹并编译保存的文件

Gulp:在目标位置保留单个文件的文件夹结构

如何使用Gulp在不同目录下编译SASS文件?

如何使用gulp编译在LESS中检测根文件

Gulp 缩小所有 css/js 并移动到具有相同结构的文件夹?

是否可以使用imagemin-cli并保持压缩文件的相同文件夹结构?

如何使用Gulp捆绑GLSL文件?

如何使用打字稿文件运行gulp

如何使用 gulp 连接 JS 库文件?

Babel使用通配符编译路径,但保留文件夹结构

我如何gulp.src整个文件夹及其子文件夹,然后根据文件位置进行gulp.dest?

使用Typescript 3构建到dist /文件夹时,保持src /文件夹结构