cli-njk
v1.0.1
Published
Simple Nunjucks CLI Wrapper and templates watcher with Extension support, to generate precompiled template files or static HTML files
Maintainers
Readme
A Simple Nunjucks CLI Wrapper and templates watcher with Extension support, to generate precompiled template files or static HTML files.
Installation
# Using NPM?
npm i -g cli-njk
# Using Yarn?
yarn add cli-njkUsage
$ njk <file|glob> [options]Just like Nunjucks CLI, the process.env object is added to the context as env.
Basic examples
$ njk foo.njk --options njk.jsonCompiles foo.njk to foo.html with options from njk.json (and variables from process.env as env).
$ njk **/*.njkCompiles all .njk files (including subdirectories), except the ones starting by _ (so you can use them as layouts).
CLI Options
--help, -h, -?
Setting this option will Display or Show the help
$ njk --help--version
Setting this option will Show the current version number
$ njk -v
# 1.0.0--path, -p
This sets the path where templates live. Defaults to the path in process.cwd()
$ njk *.njk -p srcSee https://mozilla.github.io/nunjucks/api.html#configure
--outDir, --out, -D
The path to output compiled templates
$ njk *.njk -D dist--outFile
The path to file for precompiled templates. When set, all discovered templates will be bundled into the file
$ njk *.njk --outFile precompiled.jsSee https://mozilla.github.io/nunjucks/api.html#precompiling
--watch, -w
Watch files change, except files starting by "_"
N/B: Template watching is only allowed for rendering and as such the --render flag must be used
$ njk *.njk --watch --render--render, -r
Whether or not to render files or precompile them. When not set, templates are precompiled and bundled if --outFile flag is used
$ njk *.njk --render
# Renders static HTML --extension, -e
Extension of the rendered or precompiled files
# When rendering
$ njk *.njk -r -e html
# When precompiling...
$ njk *.njk -e js--extensions, -E
Set of Extensions to use. The extensions are included using nodejs' require().
To use Nunjucks Reactive for instance, we can write something like this
$ njk *.njk -E nunjucks-reactiveFiles in the --path specified can also be included using their relative paths.
$ njk *.njk -E ./wrapfile ../extenderSee https://mozilla.github.io/nunjucks/api.html#addextension
--options, -O
Setting up an options file can come quite handy. cli nunjucks currently supports two major scopes in options
Nunjucks options found in
config{ "config": { "trimBlocks": true, "lstripBlocks": true, "noCache": true } }Nunjucks Compiler options
- Environment context
{ "compiler": { "context": { "package": "cli-njk" } }- Array of extensions to load. Similar to using the
-Eflag
{ "compiler": { "extensions": [ "./extended", "nunjucks-reactive" ] } }Nunjucks CLI options
Some other cli options are supported provided its not their alias.
{ "compiler": { "outDir": "dist" } }
See https://mozilla.github.io/nunjucks/api.html#configure
Advanced examples
$ njk foo.njk -p src -o dist -O njk.jsonCompiles src/foo.njk to dist/foo.html, with njk.json as njk environment options.
$ njk *.njk njk.json -w -r -p srcCompiles and renders all .njk files -- except ones starting with _ -- in the src folder to the current working directory, with njk.json as metadata, and keeps running in the background for files changes.
