wszgrcy

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

  •  
  •   wszgrcy · Mar 11, 2019 · 2534 views
    This topic created in 2750 days ago, the information mentioned may be changed or developed.

    正常情况

    • 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 也是必须的
    • 才能正确的在调试中把地址转换为源地址....这就有点尴尬了,虽然能输出,看起来怪怪的,不知道有没有大佬们遇到过这个问题并解决的,
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1164 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:47 · PVG 01:47 · LAX 10:47 · JFK 13:47
    ♥ Do have faith in what you're doing.