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



我想编译所有的哈巴狗文件。

这是我的 src 文件夹结构

src
pug
a
a.pug
b
b.pug

我希望gulp编译所有pug文件,但保持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'));
});

最新更新