JSHint是否支持节点7(asynchronous/等待)?

我正在使用JSHint的JavaScript项目(与Visual Studio代码)。 而在这个项目中,我使用async / await,哪个JSHint突出显示为错误。

我试图设置jshint,但它似乎是“esversion”的最大版本是6。

jshint支持asynchronous/等待吗? 如果有,如何打开? 如果没有,是否有任何解决方法?

JSHINT开发社区认为:

  • 在开始实现ES7function之前,JSHINT应该首先支持所有的ES6语法。
  • asynchronous函数只在第一阶段,所以语法可以改变很多

JSHINT-ESNEXT(PACKAGE)

但是,有一个非正式的JSHINT包 ,其中包含对awawit / async的实验性支持 ,称为JSHINT-ESNEXT

作者@ marcominetti使用官方的JSHint 2.7 Master分支,并从Seb Vincent esnextnext分支中引入了这个ES7特性。

检查Npm包 ,并在github中的源代码

安装 :$ npm install -g jshint-esnext

现在(2017年7月)这是JSHINT中唯一支持awaik /asynchronous的可用方法。


JSHINT IGNORE(DIRECTIVE)

常见的build议解决方法或缓解做法是使用JSHINT忽略指令。

// Code here will be linted with JSHint. /* jshint ignore:start */ // Code here will be ignored by JSHint. /* jshint ignore:end */ 

要么:

 ignoreThis(); // jshint ignore:line 

当我们的代码有大量的asynchronous/等待引用时,我个人发现这种缓解实践是肮脏和混乱的。 但更多的混淆和肮脏的JSHINT警告和错误;)

jshint支持asynchronous/等待吗?

不,还没有到2017年初。

它似乎还不支持async/await 。 在jsHint上工作的人们已经决定不支持async/await直到标准进入后期阶段(显然以前支持的东西显然是在支持的时候,他们还在改变) – 虽然实现已经存在了(Babel,nodejs等… )。

如果你按照这个jsHint开放的问题线程 ,它是7和11天前最近的评论仍然是一个公开的问题。

如果没有,是否有任何解决方法?

截至2017年7月,似乎有一个名为jshint-esnext的jsHint代码的分支,它支持async / await在这里: https ://www.npmjs.com/package/jshint-esnext。

OP问它有什么解决办法。 这是一个kludge,但我已经用“async / ** /”和“await / ** /”replace了所有的“async”或“await”。 然后将它们交换成'/ * async * /'和'/ * await * /'的快速脚本允许我使用jshint进行检查。

这不是很好,但它喂牛头犬。