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.js
const option = {
path: 'src/template'
}; //オプションを設定
// task処理一部抜粋
.pipe($.nunjucksRender(option))
上記のオプションを指定すると、どの階層のnjk
ファイルでもpartials/header.njk
と記載できます。