【问题标题】:SonarQube analysis fails on ES2015 syntax - but it's apparently supported?SonarQube 分析在 ES2015 语法上失败 - 但它显然受支持?
【发布时间】:2016-05-30 17:58:50
【问题描述】:

这里 (http://docs.sonarqube.org/display/PLUG/JavaScript+Plugin) 说,SonarQube JS 插件从 2.0 版开始就支持 ES6(我相信也称为 ES2015)。

我在 SonarQube 4.5.6 中安装了 2.8 版,但我在分析日志中看到这样的错误 -

17:54:58.185 ERROR - Parse error at line 21 column 17:

     'individualIndex': -1,
     'individualName': {},
     'individualSearchResults': [],
     'individualEmail': '',
     'individualMobile': '',
     'dunsNumberRequired': false,
     'allDone': false
    });
  }

  static actions = {
                 ^

...在我看来,SonarRunner 被 static 关键字绊倒了。

那么 - SonarQube 真的 支持 ES2015 吗?或者我是否需要以不同的方式配置它,也许?我的配置如下 -

sonar.projectKey=my-project
sonar.projectName=My Project
sonar.projectVersion=$BUILD_NUMBER
sonar.exclusions=node_modules/**,tests/**,bin/**,config/**,docs/
sonar.sources=.
sonar.javascript.lcov.reportPath=coverage/lcov.info

谢谢。

【问题讨论】:

  • 那个代码不是 ES2015。 ES2015 不支持(静态)类属性。
  • @zeroflagL 啊,这很可能是我感到困惑的原因,谢谢。那代码会是 ES2016 吗?
  • 没有。 ES2016 将是一个小更新。类属性仍然是一个提议,可能需要一段时间才能进入标准。如果它到达那里。
  • 知道了,谢谢。如果您想发布一个答案,告诉我我正在扫描的代码不是 ES2015,我会很乐意接受。

标签: javascript sonarqube ecmascript-6


【解决方案1】:
static actions = {

这是一个静态类属性,不属于 ES 2015 规范的一部分。所以 SonarQube JS 插件抱怨它是对的。类属性目前处于提案阶段,因此尚不清楚它们何时(或是否)将其纳入语言。

ECMAScript 语言的现状和发展有时会令人困惑。转译器支持大多数提案(即尚不属于任何规范的功能)这一事实使情况变得更糟。

如果您想针对特定版本的 ECMAScript,但不确定支持的功能,那么您当然可以咨询language sepecification。我也可以推荐this compatibility table

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-16
    • 2016-11-23
    • 2016-06-17
    • 2018-06-25
    • 2017-02-12
    • 2016-03-30
    • 1970-01-01
    • 2022-12-11
    相关资源
    最近更新 更多