2013-09-26 29 views
3

我一直听到越来越多的关于源地图以及如何使用Closure编译器生成它们,以便在编译和最小化代码后提供开发时使用的所有调试优点。显然也支持编译成js语言,如CoffeeScript。Javascript源地图是如何生成的?

我觉得这非常酷! (荣誉给大家参与制作这个可能)

什么我很感兴趣,虽然是:

  1. 这是如何实现的呢? (主要问题)
  2. 为什么这很有用(与仅在开发模式下进行调试相反)? (二级)
+1

这是很好不会对线#1,或像“C”一代产量东西你所有的错误发生没有内部函数定义的“一” ...... – dandavis

+0

我明白这一点,但如果你是一个贡献者项目肯定你可以在编译之前调试并最小化? – GordyD

+1

当一个bug在凌晨3点出现时,你知道你的函数调用是在哪里吗?我们不需要他们,他们只是帮助。那些不在多步骤构建中的人呢?不应该像开发人员那样容易使用萤火虫?它类似于无损脚本压缩。 – dandavis

回答

4

如何创建源地图?

Html5 Rocks站点有一个great tutorial on generating source maps并显示了Closure编译器的示例。每个工具的命令会有所不同,但输出应该大致相同。

为什么来源地图是有用的

工具,压缩,编译,优化或生成JavaScript不约而同地引入错误。这些错误通常在开发(未压缩的 - 原始代码)环境中不存在。但是,调试压缩的代码是令人难以置信的痛苦。

源地图进行压缩/错位符号映射到原来如此,你似乎是通过原始代码进行加强。因此,当发生错误时,你知道问题出在哪里。