Szi*_*rdD 7 javascript source-maps
我使用了实现客户端异常日志记录window.onerror,在那里我检索当前错误和堆栈跟踪并使用AJAX将其发送到服务器
    window.onerror = function(message, url, line) {
      var stackTrace = printStackTrace(); //get stack trace
      //send message, url, line and stackTrace to the server using an ajax call
    }
Run Code Online (Sandbox Code Playgroud)
printStackTrace这个库提供的功能在哪里:http://stacktracejs.com/
问题是在生产中所有JavaScript文件都缩小了,因此堆栈跟踪和行号并不真正有用,因为所有错误都在文件的第1行报告,这是正常的,因为缩小版本包含一行代码.例如:
Message: Object doesn't support property or method 'indexOf' 
URL: http://[server]/[site]/content/combined/combined.635EE367354E6DF721593CAC56FECF95.min.js
Line: 1
Run Code Online (Sandbox Code Playgroud)
这可以使用源映射进行改进,还是仅在Developer Tools处于活动状态时才有效?
我想要的是,当没有启用开发人员工具激活/源映射的用户发生错误时,使用源映射(或至少是实际行号)获取完整堆栈跟踪.这有可能吗?
您绝对可以获取源映射中包含的所有信息并自行设计堆栈跟踪,但据我所知,目前还没有一个优雅的解决方案。无论哪种方式,它都需要至少使用ajax下载地图文件,并且可能还需要原始源文件。而且您将遇到一些棘手的跨浏览器问题,因为并非所有浏览器都完全支持源映射。
看起来堆栈跟踪在他们的计划中有这个,但还没有任何人执行它: https: //github.com/eriwen/javascript-stacktrace/issues/44
Get Sentry 确实将其作为其 js 日志记录实用程序的一部分来执行此操作,但它包含在一个更具多功能性的工具中,我相信它目前仅支持 Chrome 中的完整堆栈跟踪日志记录:https: //github.com/getsentry/raven- js
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1897 次  |  
        
|   最近记录:  |