V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wszgrcy
V2EX  ›  前端开发

如何重写 console.log 保持 sourcemap 对应关系

  •  
  •   wszgrcy · 2019-03-11 21:57:25 +08:00 · 2046 次点击
    这是一个创建于 2084 天前的主题,其中的信息可能已经有所发展或是发生改变。

    正常情况

    • console.log等打出的调试信息后面都有一个 xxx 文件的提示
    • new Error()然后输出调试信息也会映射这些文件信息
    • console.trace 也能正确显示映射路径

    问题转化

    console.log(`Error
    	at http://127.0.0.1:4200/main.js:894:18`)
    
    • 上面的会变成什么呢?没错就会打印出 Error at app.component.ts:54
    • 这样的调试信息,符合我的预期,确实把编译文件映射到了源文件

    但是

    console.log(`http://127.0.0.1:4200/main.js:894:18`)
    
    • 这样写....很抱歉,映射失败...

    需要什么

    • 由于重写 log 方法,导致映射会映射到重写的方法里,而不是原来console.log的位置,那么我想了一个替代方案,利用new Error特性手动输出这一行总行了把.
    • 但是实际上发现,只有格式为
    Error
    	at http://127.0.0.1:4200/main.js:894:18
    
    • 第一行必须是 Error 或者相关错误的类名,第二行缩进,at 也是必须的
    • 才能正确的在调试中把地址转换为源地址....这就有点尴尬了,虽然能输出,看起来怪怪的,不知道有没有大佬们遇到过这个问题并解决的,
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.