【问题标题】:Revert JavaScript minification using source map使用源映射恢复 JavaScript 缩小
【发布时间】:2015-06-08 23:03:44
【问题描述】:

如果我有缩小文件及其对应的源映射,是否可以获得正确的 JavaScript 源文件?

我知道如何美化 JS 代码(换行和缩进),但我想在文件中获取原始函数/变量名称,以便更好地理解源代码。

我想使用未缩小的 JS 文件,而不是使用它在浏览器中进行调试。

PS 它可能就在我眼皮底下的某个地方,但到目前为止我还没有找到它。对不起,如果这已经被问到了!

【问题讨论】:

  • 这就是源地图的用途...您是否需要一个独立的工具来做到这一点?或者你的问题是什么?
  • @FelixKling 谢谢你的好点,我添加了一个澄清。

标签: javascript


【解决方案1】:

要使用源地图,需要压缩文件和原始文件,通常原始文件包含在源地图文件中(对于无法托管的源,它具有可选的 sourcesContent)。

Sourcemap 只是 JSON 文件,您可以在其中找到所有需要的信息:

  • sources - 源文件名列表,
  • sourcesContent - 可选列表 原始来源,如果未提供来源,则为空 在这里。

实用脚本,我之前为此写过:https://gist.github.com/zxbodya/ca6fb758259f6a077de7

【讨论】:

  • 就我而言,没有原始源文件。但是我确实在 .map 文件中看到了一个属性“名称”,我想知道它是否按字母顺序映射到替换变量,是否会尝试匹配它们。感谢您的想法!
  • 可能还有 sourcesContent 字段包含原始来源,使用简单脚本添加了指向要点的链接以保存这些来源。
  • 不,抱歉,我在 JSON 中只有这些字段:“版本”、“文件”、“来源”、“名称”、“映射”、“源根”。
  • 我才发现是NodeJS nodejs.org
【解决方案2】:

我认为您将无法完全将此类代码恢复到其原始状态,因为在此过程中会丢失大量信息(例如 cmets 或某些变量名称)。当我正确理解源地图时,您仍然需要原始文件。

如果您只是为了美化代码使其再次可读,则不需要源映射。许多高级编辑器都有这样的功能。例如,如果您使用的是 Sublime 文本,则有这个插件:https://packagecontrol.io/packages/HTML-CSS-JS%20Prettify,它做得很好。

另见类似问题:How can I debug a minified JS in firebug?

【讨论】:

  • 我知道如何美化它,正如我在问题中所写的那样(我确实使用了你提到的 ST3 的插件,这非常酷!),但我想取回原来的变量名到缩小的文件中。我知道并非所有都可以恢复,但至少有足够的信息可以做到这一点。
猜你喜欢
  • 1970-01-01
  • 2015-06-03
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
相关资源
最近更新 更多