Javascript源映射是如何生成的?

Javascript源映射是如何生成的?,javascript,google-closure-compiler,source-maps,Javascript,Google Closure Compiler,Source Maps,我已经听到越来越多关于源代码映射的信息,以及如何使用闭包编译器生成它们,从而在编译并最小化代码后,提供开发中使用的所有调试优点。显然,还支持编译成js语言,如CoffeeScript 我觉得这太酷了!(感谢所有参与实现这一目标的人) 但我感兴趣的是: 这是如何实现的?(主要问题) 为什么这很有用(而不仅仅是在开发模式下调试)?(中学) 如何创建源映射? Html5 Rocks站点有一个包含闭包编译器的示例。每个工具的命令会有所不同,但输出应该大致相同 为什么源地图有用 压缩、编译、优化或生成Ja

我已经听到越来越多关于源代码映射的信息,以及如何使用闭包编译器生成它们,从而在编译并最小化代码后,提供开发中使用的所有调试优点。显然,还支持编译成js语言,如CoffeeScript

我觉得这太酷了!(感谢所有参与实现这一目标的人)

但我感兴趣的是:

  • 这是如何实现的?(主要问题)
  • 为什么这很有用(而不仅仅是在开发模式下调试)?(中学)
  • 如何创建源映射? Html5 Rocks站点有一个包含闭包编译器的示例。每个工具的命令会有所不同,但输出应该大致相同

    为什么源地图有用 压缩、编译、优化或生成JavaScript的工具总是会引入错误。这些错误通常不会出现在开发(未压缩的原始代码)环境中。然而,调试压缩代码是令人难以置信的痛苦


    源代码映射将压缩/损坏的代码映射到原始代码,这样您看起来就像是在单步执行原始代码。因此,当出现错误时,您就知道问题所在。

    最好不要让所有错误都发生在第1行,或者函数“a”中没有定义像“c”这样的错误……我理解这一点,但如果您是项目的参与者,您当然可以在编译之前进行调试并将其最小化?当凌晨3点在生产中出现错误时,你知道你的函数调用在哪里吗?我们不需要他们,他们只是帮忙。那些不支持多步骤构建的人呢?firebug不应该像开发人员一样容易在prod上使用吗?这类似于一个无损的脚本压缩。注意,我想扮演魔鬼的代言人。很好的解释,把它放在一个答案里,这样我就可以投票了!:)