有没有能够很好地与ES6配合使用的代码复杂度计量工具?

10
我做的项目是ES6(使用webpack + babel)。Plato非常好用,但是目前还不支持ES6 我看了一下escomplex和相关系列软件包,但是作者好像已经不再维护它了,而且似乎也不支持ES6。
我使用ESLint复杂度规则来警告我是否存在问题(设置为6),但这不同于一个漂亮的报告。
有什么建议吗?
2个回答

7

有一个由deedubs创建的分支,它使用espree而不是esprima。我已经安装了它,并且它可以在ES6风格的代码上完美运行。如果要安装分支版本而不是默认发行版,请执行以下命令:

npm install -g git+https://github.com/deedubs/es6-plato.git

每当您想卸载它时,只需像使用普通的plato安装一样执行以下操作: npm uninstall plato 下面是一个基于ES6代码的文件报告的截图,这是在安装Plato分支版本后生成的: enter image description here 你提问已经有大约3个星期了,我不确定这对你是否还有用,但我希望能帮助其他遇到相同问题的人使用这个神奇的工具。

1
但是 Esprima 不能很好地解析 ES6 吗? - Bergi
1
你说得对,为了简单起见,我错过了一些解释的部分。长话短说,这个人在一个Plato依赖树中进行了替换,它所依赖的顶层库名为escomplex-js,它是一个包装在不再维护的库escomplex上的库。原始版本依赖于旧版的esprima,另外一个人已经完成了一半的工作,但忘记为espree启用所有的es6选项。据我所知,deedubs已经解决了这个分支上的所有es6问题,到目前为止它一直在为我工作,所以可以放心使用。 - overlordhammer

3

我在这里发布了一个版本的plato: https://www.npmjs.com/package/es6-plato

  • 更新了lodash和依赖项
  • 修复了plato的一些常见错误
  • 正确解析es6
  • 这包括类

npm install --save es6-plato

阅读文档以了解如何在gulp中使用它,或通过js api使用它。


谢谢回复。看起来很棒,我会去试试。对于跟进此事的任何人,我们最终选择了SonarQube - sak_to
1
@sak_to,您是否接受此答案?这是一个维护良好的分支答案,而您之前接受的答案似乎已经不再维护。 - GG.

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