【发布时间】:2014-03-30 13:15:28
【问题描述】:
背景:我为 node.js 开发了一个小模块系统,它从一个单独的源服务器异步加载所有需要的代码,并用eval(code) 编译它。我的问题是,对于此类“eval-ed”代码中的所有运行时错误,堆栈跟踪将 <anonymous> 显示为文件名 --- 我无法区分引用了哪个代码段。
我的问题:有没有办法为 eval 设置文件名,以便堆栈跟踪显示一些程序定义的字符串而不是 <anonymous>?
我当前的(不完美的)解决方案:到目前为止,我将代码写入一个文件并使用require(file) 加载它。这将播下文件名 --- 但这是一个复杂的解决方法。
注意: 通常,运行时错误不会在编译 eval 调用时出现,但稍后会在使用编译后的代码时出现。因此,围绕 eval 的 try/catch 无助于确定哪个代码段失败。
【问题讨论】:
标签: node.js eval stack-trace