如何自动缩进/格式化一行JS文件?

7
一个有点恶作剧心态的前开发者在离开公司之前,开发了一整个只有一行javascript UI框架让我们的工作更加困难。我的意思是......也许他在开发后把事情搞砸了?

问题是...有很多需要修复的漏洞,我想知道你们如何处理自动缩进整个代码。

谢谢


2
可能是Add indent to a plain javascript code string的重复问题。 - Felix Kling
1
至少它没有被混淆...我希望如此。还要检查行尾。一些反向的“Windows编辑器”将无法正确地识别“只有\n”的行... - user166390
1个回答

22
一整个JavaScript UI框架只有一行代码
将可读的开发代码转换为难以理解的生产代码的过程称为缩小/丑化。简而言之,这个过程优化了生产使用的代码。根据实现方式,它可以执行以下操作(但不限于此):
- 通过删除空格来压缩代码(将其变成单行) - 通过将变量和函数重命名为较短的名称来进行压缩 - 通过使用替代语法(例如将if转换为三元运算符,for转换为while)来压缩语法 - 删除死代码/无法访问的代码
你们如何自动缩进整个代码?
有很多工具可以完成这个任务:
  • 你可以使用JSBeautifier,一个在线工具来格式化JS和HTML。非常方便快速。

    如果你使用Sublime Text编辑器,有一个插件可以实现这个功能。

  • 如果你使用Grunt,那么有一个JSBeautifier任务可以执行与在线版本相同的功能。

  • Chrome在开发者工具的Sources选项卡中有一个漂亮打印选项。这会在调试器上缩进压缩的代码(它不会修改文件)。

  • 如果文件有一个相应的源映射(一个与代码文件同名但扩展名为*.map的文件),那么你就走运了。源映射就像是一个包含原始名称与压缩名称映射的字典。源映射在Chrome和Firefox的开发者工具中都得到支持,但默认情况下未启用。如果你启用它,浏览器将尝试下载它们(假设它们与压缩文件一起包含)并在开发者工具的Source选项卡中使用它们进行查看。


Joseph,我想知道你是如何如此迅速地回答问题的,这很顺利,感谢你提供额外的信息。 - RollRoll
2
@EdwinSnts:像这里的许多Javascript专家一样,他脑海中就知道答案,而且(大概)打字速度很快。 :) 您可能还会对jsFiddle感兴趣,用于美化和进一步调试您的代码。 - Elliot Bonneville

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接