Nunjucks - 找出哪个模板文件导致 "template render error"
Nunjucks - find which template file causes "template render error"
我正在通过 Node+Express 渲染 Nunjucks。
我有很多观点,突然我的一个观点抛出了一个错误,下面的堆栈跟踪。
如何找出哪个模板或 helper/macro 错误源自?
"Template render error: Template render error: Template render error: Template render error: TypeError: Cannot read property 'height' of null
at Object._prettifyError (/code/node_modules/nunjucks/src/lib.js:35:11)
at /code/node_modules/nunjucks/src/environment.js:547:19
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:151:12)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:57:12)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:46:11)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:155:12)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:105:12)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:11:11)
at /code/node_modules/nunjucks/src/environment.js:597:9
at Template.root [as rootRenderFunc] (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:188:3)
at Template.getExported (/code/node_modules/nunjucks/src/environment.js:595:10)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:10:5)
at Environment.getTemplate (/code/node_modules/nunjucks/src/environment.js:263:9)
at Template.root [as rootRenderFunc] (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:8:5)
at Template.render (/code/node_modules/nunjucks/src/environment.js:540:10)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:104:10)
at fn (/code/node_modules/a-sync-waterfall/index.js:26:24)
at /code/node_modules/a-sync-waterfall/index.js:66:22
at executeSync (/code/node_modules/a-sync-waterfall/index.js:8:15)"
正如 Aikon Mogwai 在评论中所建议的那样,所有这些都是关于在 node_modules/nunjucks/src/environment.js
中添加控制台登录。
对于 viewhelpers 最好在行 547
处执行 console.log(err, _Obj3)
(在 this.rootRenderFunc(this.env, context, frame, globalRuntime, function (err, res) {
中的捕获内)
对于 .njk
中的错误,最好在 526
处执行 console.log(this);
(在 _proto3.render = function render(ctx, parentFrame, cb) {
中的捕获内)
记录的对象将包含以下有用的属性
filename
-> 导致错误的文件的绝对路径
tmplStr
-> 在错误发生之前它可以解析的那个文件的所有内容
- 一堆上下文对象,例如包含当时存在的所有 Nunjucks 全局变量和过滤器
我正在通过 Node+Express 渲染 Nunjucks。
我有很多观点,突然我的一个观点抛出了一个错误,下面的堆栈跟踪。
如何找出哪个模板或 helper/macro 错误源自?
"Template render error: Template render error: Template render error: Template render error: TypeError: Cannot read property 'height' of null
at Object._prettifyError (/code/node_modules/nunjucks/src/lib.js:35:11)
at /code/node_modules/nunjucks/src/environment.js:547:19
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:151:12)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:57:12)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:46:11)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:155:12)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:105:12)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:11:11)
at /code/node_modules/nunjucks/src/environment.js:597:9
at Template.root [as rootRenderFunc] (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:188:3)
at Template.getExported (/code/node_modules/nunjucks/src/environment.js:595:10)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:10:5)
at Environment.getTemplate (/code/node_modules/nunjucks/src/environment.js:263:9)
at Template.root [as rootRenderFunc] (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:8:5)
at Template.render (/code/node_modules/nunjucks/src/environment.js:540:10)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:104:10)
at fn (/code/node_modules/a-sync-waterfall/index.js:26:24)
at /code/node_modules/a-sync-waterfall/index.js:66:22
at executeSync (/code/node_modules/a-sync-waterfall/index.js:8:15)"
正如 Aikon Mogwai 在评论中所建议的那样,所有这些都是关于在 node_modules/nunjucks/src/environment.js
中添加控制台登录。
对于 viewhelpers 最好在行
547
处执行console.log(err, _Obj3)
(在this.rootRenderFunc(this.env, context, frame, globalRuntime, function (err, res) {
中的捕获内)对于
.njk
中的错误,最好在526
处执行console.log(this);
(在_proto3.render = function render(ctx, parentFrame, cb) {
中的捕获内)
记录的对象将包含以下有用的属性
filename
-> 导致错误的文件的绝对路径tmplStr
-> 在错误发生之前它可以解析的那个文件的所有内容- 一堆上下文对象,例如包含当时存在的所有 Nunjucks 全局变量和过滤器