JavaScript中的Beautify/lint空白

Gol*_*den 11 javascript code-formatting node.js gruntjs

我想lint(甚至可能自动)在JavaScript中美化空白.问题是是否有任何工具可以做到这一点.

我知道JSLint和JSHint,例如,可以检查缩进和尾随空格,这两者都很好,但这些并不是你可能拥有的唯一种类的空格.

我想要检查的是:

  • 某些结构之前或之后是否有空行?
  • 有多个空行吗?
  • 某些事物之间是否有单个空格(这是由JSLint/JSHint部分检查的)?
  • ...

基本上,我想拥有像Visual Studio和Resharper这样的现代IDE可以做的所有东西,但作为可以嵌入到Grunt中的命令行工具.

我发现在这方面做的事情唯一的就是esformatter,但根据它的网站

仍处于早期开发阶段,并且缺少对许多重要功能的支持.

当然,如果有更成熟的东西会很棒.

有任何想法吗?

use*_*109 6

6个月后更新并进行大量搜索

我建议你看看eslint.它建立在可插拔linting规则的基础上,这就是你所要求的.您可以使用grunt-plugin grunt-eslint指定linting规则并自动化它.它仍然是pre-alpha,但比esformatter的进展更快.它有一个明确的路线图.


原版的

你问的问题没有简单的答案.所以,让我分解一下,然后分解回答.您需要现有IDE的功能,如Visual Studio和Resharper,您可以在命令行中嵌入Grunt.广泛地分类您可能想要的功能:

  • 编译器/调试器
    • 在运行时之前/期间测试错误.
  • Lint/flag可疑代码
    • 遵循编码标准,帮助发现可能的缺陷.
  • 格式化/美化
    • 使代码可读

在制作IDE时,请记住以上所有内容.因此,在IDE中为节点找到一个同样强大的格式化器很难.

调试器

我知道可以将eclipse调试器用于节点.检查此链接

棉绒/格式化

对于grunt(基于JSLint/JSHint):

  1. 咕噜-的contrib-jshint
  2. 咕噜-的JSLint
  3. 咕噜棉短绒
  4. 咕噜,jsbeautifier

esformatter功能强大,因为它使用esprima来解析和格式化Javascript.它是格式化程序而不是lint,因此在使用之前可能需要使用lint代码.esprima您可以使用其他一些格式器来查看:

使用ECMAscript的 codepainter JavaScript美化器

从其支持的样式属性,它具有一些您可以使用的功能:

  1. 缩进:{字符:'?',宽度:?}
  2. LastEmptyLine:存在,省略
  3. QuoteType:单,双
  4. SpaceAfterControlStatements:present,省略
  5. SpaceAfterAnonymousFunctions:present,省略
  6. SpacesAroundOperators:存在,省略
  7. TrailingWhitespaces:strip

esmangle ECMAScript代码mangler/minifier

esmangle使用esprima作为解析器和使用escodegen作为代码生成器.见演示.

有很多正在为ECMAscript开发的软件包,你可以在这里查看