为了保持代码的整洁,我尝试使用node-jslint https://github.com/reid/node-jslint
我的nodejs脚本中有一个const,但是jslint说它不是有效的ES6代码
Unexpected ES6 feature.
const pdPersonsFilterId = process.argv[2]; // Line 10, Pos 0下面是我在控制台中使用的命令
jslint --edition=latest index.js根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const,可以使用全局常量。
为什么jslint不认为这段代码是有效的?
发布于 2016-03-28 23:18:10
2020年的编辑: As ctrl-alt-delar mentions in a comment,正如答案中预测的那样,JSLint已经放弃了es6要求--它看起来像on 9 Oct 2017。
也就是说,es6 is 不再是有效的JSLint选项。现在的OP代码会像这里写的那样:
/*jslint browser */
/*global process */
const pdPersonsFilterId = process.argv[2];但是,如果您认为自己处于OP的情况下,则应确保您用来编译文件的任何进程都没有使用旧版本的JSLint。有些工具附带了过时的版本,或者您的构建脚本维护了一个较旧的版本,以免破坏遗留代码。如果你在这种情况下,下面的修复应该是有效的。
但是,如果您知道您的JSLint版本比2017年10月9日更新,并且出现es6错误,请打开一个新的StackOverflow问题!
对于最初的问题/旧版本的JSLint...
JSLint对ES6很满意;你只需要让它知道你在使用ES6。将es6指令添加到您的JSLint配置或文件顶部,然后获取利润。
/*jslint es6 */
const pdPersonsFilterId = process.argv[2];现在,您看到的警告消失了。
来自JSLint's help
第六版的ECMAScript ES6可能需要时间才能普及。在没有完全实现新标准的环境中使用新功能将导致失败。这就是为什么在使用ES6特性时JSLint会给出警告。 ES6的一些功能很好,因此JSLint将使用es6选项识别ES6的好部分。随着新标准的实现变得更加稳定和更好地理解,JSLint识别的功能集可能会增加。在完成到ES6的转换后,将删除es6选项。 emph mine
看起来很公平。所以你所看到的只是警告你,你已经得到的可能在不支持ES6的地方不起作用,因为现在有很多地方。一旦ES6变得更加普及--或者如果您明确地让Crockford知道您打算使用ES6 --警告就会消失。(TJ的观点可能是,至少在Node中,是时候删除警告了。;^D)
发布于 2016-09-02 14:25:13
试试ESLint吧。
它在NPM上有更好的统计数据,文档很棒,而且被广泛使用。
https://stackoverflow.com/questions/36104136
复制相似问题