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


430

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

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


4
对于可能不知道的人,minification将内部变量名称更改为单个字母并删除代码注释。撤消这些更改不能自动进行。
维维安河

@DanielAllenLangdon好点。我已经编辑了问题,因此它不再意味着缩小不会更改变量名。
安迪·福特

12
FWIW ...刚刚找到JS NICE jsnice.org
Andy Ford

marcusjenkins.com/linux/…对我来说效果很好。
ychaouche 2015年

1
对于@DanielAllenLangdon:jsnice.org甚至可以最小化和反混淆3万个angularjs代码。
绿色

Answers:


504

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

编辑:实际上,它可以解压缩“打包的”脚本(与Dean Edward的打包器打包在一起:http : //dean.edwards.name/packer/


2
+1-我以前使用过这种方法,而jsbeautifier.org是一项出色的服务。
丹·卢

谢谢。这正是我想要的。
安迪·福特


4
有没有一种工具可以“更改变量名”并且仍然知道JS语法不会破坏代码?
豪尔赫·巴尔加斯

3
如果可以的话,最多可以使用10次。刚刚从浪费的一天中救了我!
benlumley

154

Chrome开发人员工具内置了此功能。调出开发人员工具(按F12键是一种方法),在“源”选项卡中,左下方的栏包含一组图标。“ {}”图标为“漂亮打印”,并根据需要进行此转换。

更新:IE9“ F12开发人员工具”在“工具”图标下的“脚本”选项卡中也具有“格式化JavaScript”功能。(请参阅F12中的提示4,这是保存得最好的Web调试秘密

在此处输入图片说明


1
对于我要缩小的特定.js,此方法效果最好,欢呼。
igneosaur 2011年

1
现在位于“源”选项卡中,而不是“脚本”选项卡中。
mhenry1384 2012年

@ mhenry1384:是的,Chrome浏览器确实重命名了该标签页。我相应地更新了答案。
乔恩·亚当斯

是!!(我们的应用程序没有我所知道的js调试/开发模式-幸好我们没有缩短/转换变量名。)
Steven Lu

2
请注意:Chrome有时会弄乱JavaScript代码。例如,if (a) /regex/.match(foo);由于if (a)\n / /regex/ .\nmatch(foo);语法错误而被漂亮地打印。
amphetamachine



14

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

toSource 也会删除评论。

例如

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

将转换为字符串:

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

PS:这不是一个“在线工具”,但是所有与常规美化技术有关的问题都作为此工具的副本而关闭。


有趣。我在2.5年前问了这个问题,所以我觉得编辑标题为时已晚,但是我仍然喜欢看到在线和离线选项。谢谢您的来电。+1
安迪·福特

10

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

  1. 使用Textmate打开文件。
  2. 单击>捆绑软件> JavaScript>重新格式化文档
  3. 开裂啤酒。

2
现在正在供应啤酒:)
dgilperez 2011年

6

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


5

作为一种替代方法(因为到目前为止我还不了解jsbeautifier.org),我使用了一个书签小书签,该小书签重新启用了Dean Edward's Packer中的解码按钮。

我在这里找到了说明和书签。

这是书签(如果站点关闭)

javascript:for%20(i=0;i<document.forms.length;++i)%20{for(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);}}




5

Stone的答案类似,但对于Windows / .NET开发人员:

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

  • 使用Visual Studio打开文件;
  • 单击“ ReSharper”>“工具”>“清理代码”(Ctrl + E,C);
  • 选择“默认:重新设置代码格式”,然后单击确定;
  • 开裂啤酒。





By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.