繁体   English   中英

什么是一个很好的独立JavaScript格式化程序来修复丢失的分号?

[英]What is a good stand-alone JavaScript formatter for fixing missing semicolons?

我正在尝试改进/修复大量遗留的Web代码,不幸的是大部分都是格式不良的JavaScript。 我正在寻找一个批处理/脚本化实用程序,可以修复在可执行语句结束时缺少simicolons的JavaScript。

我已经尝试过使用Rhino的beautify-cl.js脚本,但这并不会添加分号。 另外,我已经尝试过JSTidy认为我可以将其修改为可编写脚本,但它会删除所有注释。 考虑到我们有类似2000-3000文件的东西,任何解决方案都必须是可编写脚本的。

引用了以下主题,但是由于各种原因,没有一个解决方案是足够的: Javascript Beautifier - 不处理分号Javascript的最佳源代码格式化程序? - 不可编写脚本

任何想法/解决方案? 提前致谢。

显然,如果要在部署时缩小文件,则需要执行此操作。 缺少分号可能是JS文件没有正确缩小的第一个原因,所以我理解你的动机。

编写一些Python(或其他)脚本来通过jslint运行文件,然后使用jslint的输出来查看哪些行需要分号,然后旋转js源并添加它们。

我认为你在这里可能相当无所畏惧,因为JavaScript无论如何都隐含地添加了分号。


更新: 这组工具可能是您正在寻找的 “格式”选项卡提供缺少分号插入。

我在js-beautify和Google的Closure Linter中找到了一个成功的组合:

# legacy.js is your poorly formatted JavaScript file, and will be modified in-place
js-beautify -s 2 -n -b end-expand -x -r legacy.js && fixjsstyle legacy.js

js-beautify选项的说明:

  • -s 2 :缩进两个空格
  • -n :确保文件末尾的换行符
  • -b end-expand :将{ braces放在行的末尾,但始终给出}括起自己的行。
  • -x :字符串中的unescape \\xNN -escaped字符
  • -r :就地进行更改

fixjsstyle ,其安装与闭锁短绒套件,使得在默认情况下,发生的变化。

此管道保留注释 (!),缩小所有内容(主要是)我喜欢的内容,在适当的位置添加分号,甚至在可行的情况下将双引号更改为单引号。 两个命令都可以给出一个文件列表(例如, **/*.js ),而不是一个。

要在Mac OS X上安装所需的软件包:

npm install -g js-beautify
brew install closure-linter

如果您在http://jsutility.pjoneil.net上使用JavaScript Utlity V2并使用格式化功能,它将自动替换丢失的分号。

此外,如果使用压缩函数,它还将替换缺少的分号,以便压缩不会导致任何错误。

您不应该担心为了插入半冒号而对大量遗留代码进行大规模更新。 这是“做错了”的经典案例。

你会如何测试结果? 您如何确保没有“功能”(由于缺少半冒号导致的错误的副作用)不会丢失?

您认为将半冒号添加到所有这些文件中会得到什么? 除了更大的文件(我不是在使用分号)和大量未经测试的代码更改?

正如gumbo所说,使用jslint 当你在日常工作中编辑文件时,我会在文件上使用它。 在编辑这些文件时,可能您将在那时测试对文件的更改。 这将是半结肠插入疯狂的最理想时间。

此外,如果你担心保持2000-3000传统的javascript文件存活和支持,你有比半冒号更大的问题

如果http://jsutility.pjoneil.net丢失了太多错误(并且无法对其进行格式化),您可以尝试使用以下命令对其进行压缩: http//refresh-sf.com/yui/ (这将添加缺少的分号)然后返回到pjoneil.net格式化程序,以分号获取漂亮的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM