extends/include issue - koaNunjucks2 vs koa-views
Extarys opened this issue · 2 comments
Extarys commented
In koaNunjacks2: - Works
{% extends "master.njk %}
In koa-views: - Nothing works
{% extends "master.njk %}
{% extends "master %}
Same everything, just replacing the view renderer.
Config:
koa.use(koaNunjucks({
ext: 'njk',
path: __dirname+'/views',
nunjucksConfig: {
trimBlocks: true
}
}));
var views = views(__dirname+'/views', {
extension: 'njk',
map: {
njk: 'nunjucks'
},
});
koa.use(views);
Traceback:
[4:42:16] Initialisation...
[4:42:16] NodeJS server started, it is running on port 3000
Template render error: (unknown path)
Error: template not found: root
at Object.exports.prettifyError (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/lib.js:34:15)
at /media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:489:31
at eval (eval at _compile (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:568:24), <anonymous>:9:11)
at createTemplate (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:213:25)
at next (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/lib.js:210:13)
at handle (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:253:25)
at /media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:264:21
at next (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/lib.js:207:13)
at Object.exports.asyncIter (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/lib.js:214:5)
at new_cls.getTemplate (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:243:17)
at new_cls.root [as rootRenderFunc] (eval at _compile (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:568:24), <anonymous>:8:5)
at new_cls.render (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:482:15)
at new_cls.renderString (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/src/environment.js:328:21)
at Object.module.exports.renderString (/media/DarkHawk/srv/NodesProjects/Vue/node_modules/nunjucks/index.js:80:14)
at /media/DarkHawk/srv/NodesProjects/Vue/node_modules/consolidate/lib/consolidate.js:1174:11
at /media/DarkHawk/srv/NodesProjects/Vue/node_modules/consolidate/lib/consolidate.js:144:5
I don't think it's relevant, but below that I'm using Socket.io.
I opened a SO question first before realizing it was working with another package.
Maybe I misconfigured the thing. Yesterday it was working great when I tried Pug though :)
youlanstudio commented
You can look the example code. To use the FileSystemLoader function to set the path.
it('nunjucks with nunjucksEnv', function (done) {
const nunjucks = require('nunjucks')
const env = new nunjucks.Environment(
new nunjucks.FileSystemLoader(path.join(__dirname, 'fixtures'))
)
env.addFilter('shorten', function (str, count) {
return str.slice(0, count || 5)
})
const app = new Koa()
.use(views(path.join(__dirname, 'fixtures'), {
options: {
nunjucksEnv: env
},
map: { html: 'nunjucks' }
}))
.use(function (ctx) {
return ctx.render('nunjucks-filter', { message: 'this is a long message' })
})
Extarys commented
I'll just stick with koaNunjacks2, less config. thanks!