解压缩/解压缩 JavaScript 的工具 [关闭]

Posted

技术标签:

【中文标题】解压缩/解压缩 JavaScript 的工具 [关闭]【英文标题】:Tool to Unminify / Decompress JavaScript [closed] 【发布时间】:2010-11-04 21:58:32 【问题描述】:

是否有任何命令行脚本和/或在线工具可以逆转缩小效果,类似于 Tidy 清理可怕的 html 的方式?

(我特别希望取消缩小一个缩小的 javascript 文件,因此变量重命名可能仍然是一个问题。)

【问题讨论】:

对于那些可能不知道的人,缩小将内部变量名称更改为单个字母并删除代码 cmets。无法自动撤消这些更改。 @DanielAllenLangdon 好点。我已经编辑了这个问题,所以它不再暗示缩小不会改变变量名。 FWIW...刚找到JS NICE jsnice.org marcusjenkins.com/linux/… 对我来说效果很好。 对于@DanielAllenLangdon:jsnice.org 甚至可以对 30k 的 angularjs 代码进行解压缩和去混淆。 【参考方案1】:

Chrome 开发者工具内置了此功能。调出开发者工具(按 F12 是一种方式),在 Sources 选项卡中,左下方的栏有一组图标。 “”图标是“Pretty print”,可按需进行转换。

更新:IE9“F12 开发人员工具”在“工具”图标下的“脚本”选项卡中也有“格式化 JavaScript”功能。 (请参阅F12 The best kept web debugging secret 中的提示 #4)

【讨论】:

对于我试图取消缩小的特定 .js,这种方法效果最好,干杯。 现在位于“源”选项卡中,而不是“脚本”选项卡中。 @mhenry1384:是的,Chrome 确实重命名了标签。我相应地更新了答案。 是的! (我们的应用程序没有我所知道的 js 调试/开发模式——幸好我们没有缩短/转换变量名。) 请注意:Chrome 有时会弄乱 JavaScript 代码。例如,if (a) /regex/.match(foo); 被打印为 if (a)\n / /regex/ .\nmatch(foo);,这是一个语法错误。【参考方案2】:

我对 jsbeautifier.org 的输出内容并不满意,所以我进行了更多搜索并找到了这个网站:http://www.centralinternet.com.br/javascript-beautifier

对我来说效果非常好。

【讨论】:

【参考方案3】:

尽管JSPretty 的界面非常漂亮,但它是一个很好的免费在线工具,可以让 javascript 源代码易于阅读。您可以强制执行您喜欢的缩进类型,它还可以检测混淆。

【讨论】:

【参考方案4】:

http://unminify.appspot.com/ 用于 unminify javascript 和 json 的好工具

【讨论】:

【参考方案5】:

Pretty Diff 将以符合JSLint 和JSHint 空白算法的方式美化(漂亮打印)JavaScript。

【讨论】:

具有讽刺意味的是,该网站如此不漂亮,但这是一个很酷的工具。【参考方案6】:

类似于Stone 的回答,但适用于 Windows/.NET 开发人员:

如果您有 Visual Studio 和 ReSharper - 格式化 Javascript 的一个简单替代方法是:

用 Visual Studio 打开文件; 点击 ReSharper > 工具 > 清理代码(Ctrl+E、C); 选择“默认:重新格式化代码”,点击确定; 打开啤酒。

【讨论】:

【参考方案7】:

点击这些链接进行 JS deminification。这将作为扩展安装在 FF 上,帮助您在运行时调试 js。

https://addons.mozilla.org/en-US/firefox/addon/javascript-deminifier/eula/141018?src=dp-btn-primary

【讨论】:

【参考方案8】:

试试这个,用代码着色:

http://labs.swelen.com/tools/javascript/beauty.html

【讨论】:

【参考方案9】:

如果您有 Mac 和 TextMate - 格式化 Javascript 的简单替代方法是:

    使用 Textmate 打开文件。 单击 > 捆绑包 > JavaScript > 重新格式化文档 打开啤酒。

【讨论】:

现在提供啤酒 :)【参考方案10】:

在 Firefox、SpiderMonkey 和 Rhino 中,您可以将任何代码包装到匿名函数中并调用其 toSource 方法,这将为您提供格式良好的函数源代码。

toSource 也剥离 cmets。

E. g.

(function ()  /* Say hello. */ var x = 'Hello!'; print(x); ).toSource()

将转换为字符串:

function () 
    var x = "Hello!";
    print(x);

P. S.:它不是一个“在线工具”,但所有关于一般美化技术的问题都作为这个工具的重复而关闭。

【讨论】:

有趣。我在 2.5 年前问过这个问题,所以我觉得编辑标题为时已晚,但我仍然喜欢同时看到在线和离线选项。感谢您的参与。+1 在 Firefox 上似乎不再工作了【参考方案11】:

大多数 IDE 还提供自动格式化功能。例如在 NetBeans 中,只需按 CTRL+K

【讨论】:

【参考方案12】:

我不确定您是否需要源代码。 http://www.blackbeltcoder.com/Resources/JSFormatter.aspx 有一个免费的在线 JavaScript 格式化程序。

【讨论】:

【参考方案13】:

如果一个人在 JS 中使用 Firefox 的可能性更大。如果它的 Firefox 插件是为了救援。下面的一个特别有用。

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

【讨论】:

【参考方案14】:

作为替代方案(因为直到现在我才知道 jsbeautifier.org),我使用了一个书签,它重新启用了 Dean Edward 的 Packer 中的解码按钮。

我找到了说明和书签here。

这是书签(以防网站关闭)

javascript:for%20(i=0;i<document.forms.length;++i)%20for(j=0;j<document.forms[i].elements.length;++j)document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);

【讨论】:

【参考方案15】:

知道了! JSBeautifier 正是这样做的,您甚至可以选择自动格式化。

【讨论】:

***-then-google 而不是 google-then-***? :)))) 我为“javascript formatter online”做了谷歌 这个 FireFox 插件使用 JSBeautifier 来取消缩小 javascript,这样你就可以在 FireBug 的 js 调试器中设置断点了!!:addons.mozilla.org/en-US/firefox/addon/javascript-deminifier【参考方案16】:

你不能只使用 javascript 格式化程序 (http://javascript.about.com/library/blformat.htm) 吗?

【讨论】:

+1 的答案也有效。 fabien 刚好先回复了 这仅回答问题的“解压缩”部分。 不,这不是很好。它破坏了代码...... :(【参考方案17】:

你可以使用这个:http://jsbeautifier.org/ 但这取决于您使用的 minify 方法,此方法仅格式化代码,不会更改变量名,也不会解压缩 base62 编码。

编辑:实际上它可以解压“打包”脚本(使用 Dean Edward 的打包器打包:http://dean.edwards.name/packer/)

【讨论】:

+1 - 这个方法我以前用过,jsbeautifier.org 服务很好。 谢谢。这正是我想要的。 不,我说的是 62 进制:dean.edwards.name/packer 和 en.wikipedia.org/wiki/Base_62 有没有这样一种工具,可以“更改变量名”并且仍然知道 JS 语法不会破坏代码? 如果可以的话,我会增加 10 次。刚刚把我从浪费的一天中拯救出来!

以上是关于解压缩/解压缩 JavaScript 的工具 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Linux压缩解压缩及归档工具

压缩解压缩及归档工具

打包压缩解压缩工具详解

Linux 压缩与解压缩工具gzip/gunzip

Linux下的tar归档及解压缩功能详解

Linux压缩与解压缩工具