2016-09-29 9 views
0

Ich benutze dieses Gulp-Plugin, um Nunjucks verwenden, um HTML-Verwaltung zu erleichtern.Globbing in Vorlage Pfad funktioniert nicht in Nunjacks mit Schluck

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')); 
}); 

ich meine Vorlagen und partials bestimmter Seiten unter Seite des Verzeichnisses in verschiedenen Ordnern halten wollen, damit ich dies den Pfad als

path: ['src/templates/', 'src/common-partials/', 'src/pages/**/**/includes/'] 

aber es funktioniert nicht zu halten versucht.

Template render error: (unknown path) 
    Error: template not found: component1.nunjucks 

Mein Setup

enter image description here

Antwort

1

Die Option path unterstützt kein Globbing. Sie müssen jeden Pfad passieren einzeln:

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')); 
}); 

Wenn Sie wirklich verwenden Globbing möchten, können Sie das glob Modul verwenden, um jede glob zu lösen, bevor es zu gulp-nunjucks-render vorbei:

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')); 
}); 
1

Ich denke, die beiden /**/**/ das Problem sein könnte. Das Muster ** entspricht mehreren Ebenen in einer Pfadzeichenfolge. Daher bin ich mir nicht sicher, wie das Verhalten zweier Zeilen in der Zeile aussehen sollte. Folgendes sollte Ihr Verzeichnis entsprechen:

'src/pages/**/includes/' 

Das heißt, wenn nunjucks Globbing in erster Linie unterstützt (ich konnte keine Erwähnung in der Dokumentation).

+0

'src/pages/* */includes/'funktioniert auch nicht, gleicher Fehler –

+0

Können Sie einen einfacheren Weg mit Globbing versuchen? z.B. 'src/**'. Vielleicht unterstützen Nunjacks in diesem Fall kein Globbing. – nils

Verwandte Themen