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进行检查。
这不是很好,但它喂牛头犬。