2016-09-29 9 views
0

このgulpプラグインを使用して、nunjucksを使用してHTML管理を簡単にしています。テンプレートパスでのグロビングが、ギャループを持つnunjucksで動作しない

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 

マイセットアップ

enter image description here

答えて

1

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

をあなたは本当にあなたがgulp-nunjucks-renderに渡す前に、各グロブを解決するためにglobモジュールを使用することができますグロブ使用する場合:あなたは個別にパスを渡す必要が

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

私は2つの/**/**/が問題かもしれないと思います。 **パターンはパス文字列の複数のレベルに一致するので、2つの行の動作がどのようなものであるべきかは分かりません。 nunjucksは(私はドキュメントのそれの一切の言及を見つけることができませんでした)最初の場所でグロブサポートしている場合、ある

'src/pages/**/includes/' 

:以下は、あなたのディレクトリと一致する必要があります。

+0

'SRC /ページ/ * */includes/'も動作していない、同じエラー –

+0

globbingで簡単なパスを試すことはできますか?例えば ​​'src/** '。たぶんnunjucks本当にこの場合globbingをサポートしていません。 – nils

関連する問題