Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否访问用于调试闭包编译器的源映射?_Javascript_Google Closure Compiler - Fatal编程技术网

Javascript 是否访问用于调试闭包编译器的源映射?

Javascript 是否访问用于调试闭包编译器的源映射?,javascript,google-closure-compiler,Javascript,Google Closure Compiler,我正在整理我的代码库,这样它就可以在google的闭包编译器上进行高级优化 在正确设置了此任务所需的调试环境(源映射文件、chrome、包装编译的js文件)之后,我偶然发现了try-catch问题。在我的代码库中大量使用try/catch语句似乎适得其反 在几乎所有的方法和函数上,我都使用一个典型的try{}catch(e){ss.error(e);}语句,其中ss.error()是一个通用的错误处理程序,它根据环境打印调试内容或报告异常 在整理代码库的过程中,当我得到一个需要修复的错误时,所发

我正在整理我的代码库,这样它就可以在google的闭包编译器上进行高级优化

在正确设置了此任务所需的调试环境(源映射文件、chrome、包装编译的js文件)之后,我偶然发现了try-catch问题。在我的代码库中大量使用try/catch语句似乎适得其反

在几乎所有的方法和函数上,我都使用一个典型的try{}catch(e){ss.error(e);}语句,其中ss.error()是一个通用的错误处理程序,它根据环境打印调试内容或报告异常

在整理代码库的过程中,当我得到一个需要修复的错误时,所发生的是,它没有让Chrome报告有问题的文件和行,而是指向错误处理程序ss.error()。因此,我无法回溯这个问题。但是,ss.error()函数不会打印问题的根源:

错误!type:TypeError位于Db(/jsc/compiled.js:547:246)msg:无法调用 未定义源的方法“ka”:

得到这些类型的错误后,我必须执行两个步骤: 1.在第547行char 246处处理编译后的代码,并尝试找出这是指我的未编译代码中的哪一部分。。。 2.在我找到它之后,移除try/catch块,这样我就可以直接更清楚地看到是什么导致了错误

我必须说,我对这个工作流程不满意,需要找到一个替代方案,既能让我正确捕获异常,又能调试已编译和未编译的代码,同时保持心智健全=)

我想用:CharPosition info行查询源代码映射,让ss.error()函数映射到我未编译的源代码


想法?

作为闭包编译器的一部分,SourceMaps有一个java接口。还有各种修复状态的JS实现。我在这里尝试保持与他们的链接最新:


对于Java实现,您只需使用SourceMapConsumerFactory加载源映射,界面非常简单。

您是否在编译的js文件底部包含对源映射的引用:
/@sourceMappingURL=src/scripts.source.map.js
?你检查过了吗?不是你想要的答案,但是“debug”标志加上“formatting=PRETTY_PRINT”使得调试比处理源映射容易得多,不是您正在寻找的解决方案,但您也可以让错误处理程序捕获异常的堆栈跟踪。@ChadKillingsworth这可能会起到作用…@John i确实捕获了堆栈跟踪,但在编译代码中没有太大帮助。。。