解压缩/解压缩 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 的工具 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章