我如何debugging在萤火虫minified JS?

我有一个网页,其中包括精简量的JS文件。 该网页在我的本地networking上工作得很好,但在分段时会引发一些JS错误。 在JS中有一个问题,我不想debugging它。 当我在Firebug的脚本标签中加载JS时,它会出现在一条长长的水平线上。 Firebug有没有办法扩展或美化脚本进行debugging? 我知道我可以使用jsbeautifier,但他们不会帮助我。 我无法将扩展file upload到CDN,打破了使用CDN的目的。

需要注意的是,
a)我无法控制提供JS的盒子,在CDN上,我提到它。
b)我可以使用美化器等,但会帮助我在运行时debugging脚本? 恕我直言,没有
c)受NDA和其他法律事务的约束,我不能共享脚本,但它的一个通用的问题,你可以遇到一个缩小的jQuery

  1. 美化你的脚本
  2. 在/ etc / hosts或本地DNS中添加CDN主机,将其parsing到您自己的Web服务器
  3. 主持美化的版本,你需要在上述的networking服务器上的一切
  4. Firefox和Chrome(此编辑版本)都支持使用检查器中提供的{}button来美化脚本。

更新:现在有一个美化JavaScript的firebug扩展:

https://addons.mozilla.org/en-US/firefox/addon/javascript-deminifier/

它在Firefox 12.0中完美地工作。

信贷这个答案发现它。

只需加载缩小的文件,然后按下底部的{}button,它立即美化,使断点和其他debugging成为可能。 (对于Chrome也是如此)

这是一个常见的问题,Chrome开发团队最近提出了一个优雅的解决scheme,他们称之为源地图 – 请参阅http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/了解更多信息,我想你会发现这正是你(和我们其他人)一直在呼喊的!; 🙂

考虑改变!

Firefox和Firebug是近一年来我最喜欢的JavaScriptdebugging方法,但是我最近搬到了Google-Chrome的开发工具中,这个工具远远更加优越。

  • Chrome支持JavaScript资源的即时(内置function)美化 在这里输入图像说明

  • 一旦美化,您可以自由地debuggingJavaScript资源文件,因为它是从本地“下载”从networking服务器美化。 点击行号设置断点。 在这里输入图像说明

  • 其中最强大的function之一
    一旦你在一个断点停了下来,你可以自由地执行命令(使用控制台)在相同的范围内,你是在断点 。 在Firefox中,你不能这样做。 在这里输入图像说明 它很容易debugging(甚至匿名function),你永远不会回到Firefox。
    尝试一下!

这是更多的解决方法,但它可以帮助。 我们的想法是,我们将用您的机器上的文件replace来自服务器的文件。
这将适用于任何浏览器。
第一次(15分钟)可能需要一些设置,但是可以非常方便。
它还可以帮助testing您的错误修复在生活/产品环境。

  1. 获取Fiddler(这是一个Webdebugging代理),安装它,运行它。
    http://www.fiddler2.com/fiddler2/
    (安装后重新启动浏览器以获取Fiddler扩展名)
  2. 如果您debuggingHTTPS网站,请首先检查:
    http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp
  3. 从现在起,您应该在Fiddler(左侧的“Web Sessions”窗格)中看到您的浏览器所做的所有下载,包括JS文件。
    如果没有,请检查: 提琴手不显示会话
  4. 在列表中find要debugging的文件(Ctrl + F工作)
  5. 点击文件。 然后:
    • 从检查器窗格(textView选项卡)获取文件内容,美化它,保存到本地计算机上的文件
    • 或者可以访问包含源代码的文件(例如:源代码pipe理)
  6. 转到AutoResponder选项卡(左上方)。
    select“启用自动回复”checkbox。
    select“不匹配的请求传递”checkbox。
  7. 将文件从左侧窗格拖到右侧窗格(底部填充规则编辑器)
  8. 使用本地文件的path设置其他字段
  9. 点击保存button
  10. 重新加载页面并享受您的debugging会话。

小提琴手可以做更多的事情,但这个用例回答了最初的问题。

漂亮的打印你的JavaScript。 谷歌这个,你会发现多个在线JS美化。

我碰巧使用http://jsbeautifier.org/我自己,它工作正常,但寻找他人,并使用一个适合您的需求。;

警告:你仍然不能获得有意义的局部variables名(通常由缩小器重命名)。 如果代码是由Closure Compiler编译的 ,那么你绝对不会得到任何有用的信息,即使是在被证实的情况下,因为那么所有的variables和函数和属性都会被破坏(不仅是本地的)。

现在,如果你的问题是debugging来自外部的代码(例如CDN),显然这个代码会被缩小,并且你不能将你的美化版本保存到那里。 在这种情况下,你可以用一个指向你本地版本的urlreplace从CDN加载代码的标签,然后你可以把从CDN下载的代码美化到你自己的服务器上,然后用FireBug进行debugging。

现在,如果你甚至不控制包含这些标签的HTML(例如,它们驻留在外部服务器上),那么不幸的是,没有物理地将整个站点下载到你自己的服务器上,你没有办法做你想做的事情。 即使您下载了整个站点(包含所有文件),也可能无法正常工作,因为站点可能由后端处理语言驱动,或访问后端数据库。 在这种情况下,您还需要模拟所有这些数据。 这可以做到,但是 – 你只需要经历很多的痛苦。 我的build议是保存一个版本的网页,并在你自己的服务器上运行,从你自己的服务器美化代码debugging。

在JavaScript上放置断点使得debugging更容易,但是如果你的代码已经生成了,那么它可能被缩小了。 你怎么能debugging缩小的代码? 有帮助的是,一些浏览器有一个选项来取消你的JavaScript。

在Chrome和Safari中,只需select“脚本”选项卡,find相关的文件,然后按下位于底部面板的“{}”(漂亮的打印)图标。

在Internet Explorer中,通过下拉脚本select单击工具图标以查找格式化JavaScript的选项。

Opera将会自动对缩小的JavaScript进行优化。 资源