Node 端使用

$ npm install nunjucks

下载后可直接 require('nunjucks') 使用

nunjucks.js (min),如果针对编译后的模板可使用 nunjucks-slim.js (min)。

grunt 或gulp任务自动预编译,也可以在开发环境使用。

直接用 script 引入文件:

<script src="nunjucks.js"></script>

或者可以作为一个 AMD 模块加载:

define(['nunjucks'], function(nunjucks) {
});

确保在生产环境使用预编译版本,可使用 grunt gulp,可在 浏览器使用 查看客户端优化的配置。

nunjucks.configure({ autoescape: true });
nunjucks.renderString('Hello {{ username }}', { username: 'James' });

renderString 并不常用,而是使用 render 来直接渲染文件,这种方式支持继承(extends)和包含(include)模板。使用之前需要配置文件的路径:

nunjucks.configure('views', { autoescape: true });
nunjucks.render('index.html', { foo: 'bar' });

在 node 端,'views' 为相对于当前工作目录 (working directory) 的路径。在浏览器端则为一个相对的 url,最好指定为绝对路径 (如 '/views')。

如果使用 express 可直接传入 configure

var app = express();

nunjucks.configure('views', {
    autoescape: true,
    express: app
});

app.get('/', function(req, res) {
    res.render('index.html');
});

上面的 API 适用于 node 端和浏览器端 (express 只适用于 node 端),在 node 端 nunjucks 从文件系统加载模板,在浏览器端通过 http 加载模板。

如果你在浏览器上使用编译后的模板的话,你不需要额外做其他的事情系统也能够理解它们。这使得我们可以轻松地在开发环境和生产环境上使用同一份代码,并在生产环境上只使用已经编译过的模板。

API 文档和模板语言