我使用的插件gulp-nunjucks-render
与gulp如下:
gulp.task("nunjucks", () => {
return gulp
.src(src_folder + "pages/**/*.njk", {
base: src_folder,
since: gulp.lastRun("nunjucks"),
})
.pipe(plumber())
.pipe(
data(() =>
JSON.parse(fs.readFileSync(src_folder + "datas/dist/data.json"))
)
)
.pipe(nunjucks())
.pipe(beautify.html({ indent_size: 2 }))
.pipe(gulp.dest(dist_folder))
.pipe(browserSync.stream());
});
我希望生成的html文件在dist_folder
中,而不是在dist_folder
+“页面”中。
我怎么才能做到呢?
2条答案
按热度按时间bbuxkriu1#
您可能只需要按照以下文档附加
.pipe(dest('dist_folder'))
:https://gulpjs.com/docs/en/api/dest/oknwwptz2#
您想要删除
pages
目录,因此这里提到的glob-base,pages
需要成为base
的一部分:glob
base
(有时也称为glob parent)是glob字符串中任何特殊字符之前的路径段。因此,/src/js/**.js
的globbase
是/src/js/
。由
src()
生成的乙烯基示例是通过将globbase
设置为它们的base
属性来构造的。当使用dest()
写入文件系统时,base
将从输出路径中删除以保留目录结构。它自然是
base
的一部分(在src
中,它位于globstar**
之前),因此,如果删除添加的base
属性,将获得所需的行为,因为base
将从输出路径中删除"**。如果您删除设置的
base
选项,Gulp会自动将基数设置为src_folder + "pages"
。或者,如果您确实要特别设定
base
属性,可以使用下列方式:这在您的特定情况下与根本不设置
base
属性的作用完全相同!