nunjucks includeで絶対パスを指定する
nunjucksの便利な機能の1つにincludeがあります。
例えば以下のようなフォルダ構成とします。
- partials
- header.njk
- A.njk
- path1
- B.njk
- path2
- C.njk
A.njkで{% include 'partials/header.njk' %}を実行すると、partials/header.njkの内容が展開されます。
ファイルパスはデフォルトでは相対パスで設定されます。なのでメインとなるnjkファイルのパスによって以下のようになってしまいます。
partials/header.njk(A.njk)../partials/header.njk(B.njk)../../partials/header.njk(C.njk)
これではフォルダ構成が変わるとincludeのパスも修正しなければならないため、保守性が悪いです。
そのため、オプションで絶対パスを指定します。
gulpfile.babel.jsconst option = {
path: 'src/template'
}; //オプションを設定
// task処理一部抜粋
.pipe($.nunjucksRender(option))上記のオプションを指定すると、どの階層のnjkファイルでもpartials/header.njkと記載できます。