[英]Globbing in template path not working in nunjucks with gulp
我正在使用這個gulp插件使用nunjucks來簡化HTML管理。
https://github.com/carlosl/gulp-nunjucks-render
gulp.task('default', function () {
return gulp.src('src/templates/*.html')
.pipe(nunjucksRender({
path: ['src/templates/'] // String or Array
}))
.pipe(gulp.dest('dist'));
});
我想將模板和特定頁面的部分內容保留在頁面目錄下的不同文件夾中,因此我嘗試將路徑保留為
path: ['src/templates/', 'src/common-partials/', 'src/pages/**/**/includes/']
但它不起作用。
Template render error: (unknown path)
Error: template not found: component1.nunjucks
我的設定
我認為可能是兩個/**/**/
問題。 **
模式與路徑字符串中的多個級別匹配,因此我不太確定其中兩個are行的行為應如何。 以下應與您的目錄匹配:
'src/pages/**/includes/'
也就是說,如果nunjucks首先支持globbing(我在文檔中找不到任何提及)。
path
選項不支持通配符。 您必須分別傳遞每個路徑:
gulp.task('default', function () {
return gulp.src('src/templates/*.html')
.pipe(nunjucksRender({
path: ['src/templates/', 'src/pages/section_name/sub-page/includes']
}))
.pipe(gulp.dest('dist'));
});
如果您真的想使用globing,則可以使用glob
模塊在將每個glob傳遞給gulp-nunjucks-render
之前對其進行gulp-nunjucks-render
:
var glob = require('glob');
gulp.task('default', function() {
var includeDirs = ['src/templates/', 'src/pages/**/includes'];
return gulp.src('src/templates/*.html')
.pipe(nunjucksRender({
path: includeDirs.reduce(function(dirs, g) {
return dirs.concat(glob.sync(g));
}, [])
}))
.pipe(gulp.dest('dist'));
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.