这是使用const时出现的错误:

<error line="2" column="1" severity="warning" message="&apos;const&apos; is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" />


我的代码如下:

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};


只有JSHint每次都警告我,代码才能正常工作。

评论

我在文本中没有看到任何问题,但可能您已经回答了:“使用esnext选项”。又为什么呢该错误消息不是很清楚吗? const不是标准的JS(还)。

或使用eslint代替jshint

#1 楼

当依赖于ECMAScript 6功能(例如const)时,应设置此选项,以便JSHint不会引发不必要的警告。

/ * jshint esnext:true * /(编辑2015.12.29:更新的语法以反映@Olga的评论)

/*jshint esversion: 6 */

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};


此选项,顾名思义,它告诉JSHint您的代码使用ECMAScript 6特定语法。
http://jshint.com/docs/options/#esversion

编辑2017.06.11:添加了另一个选项基于此答案。

虽然内联配置对于单个文件非常有效,但是您也可以通过在项目的根目录中创建一个.jshintrc文件并将其添加到其中来为整个项目启用此设置。 >
{
  "esversion": 6
}


评论


这可行...肯定希望它是一些命令行参数! ...提示提示jshint民间

–斯科特·斯滕斯兰德
15年9月28日在0:16

现在,文档显示警告。此选项已被弃用,并将在JSHint的下一个主要版本中将其删除。使用esversion:6代替。尽管我的Webstorm内置插件无法识别新选项。我最终都指定了两者。

–奥尔加
15年12月29日在13:30

对我来说,它的.jshintrc不是.jshint,不确定jshint版本是否存在差异

– teknopaul
17年6月15日在13:31

哎呀。你是对的。已更正。

–詹姆斯·希伯德(James Hibbard)
17年6月15日在17:54

如果是这种情况,然后重新启动您的Atom

–Vitor Braga
17-10-5在0:27

#2 楼

您可以在应用程序的根目录中添加一个名为.jshintrc的文件,其中包含以下内容,以将该设置应用于整个解决方案:

每个文件都有一个注释/*jshint esversion: 6 */,但是如果您需要控制多个文件,则它的工作量比必要的多。

评论


是否有使用此配置?我的jshint只是忽略.jshintrc内部的内容。

–杨奕迅
16年8月8日在1:42

@EthanYang,不。没有额外的配置。只需确保JSHint可以找到该文件。从文档:JSHint将开始在与被插入文件相同的目录中查找该文件。如果未找到,它将在目录树中上移一层,一直到文件系统根目录。 (请注意,如果输入来自标准输入,则JSHint不会尝试查找配置文件)

–扎农
16 Dec 8'在10:46

#3 楼

使用export语句时,我得到了同样的警告。我正在使用VS Code,并使用了类似的方法来处理Wenwen Jiang的解决方案。 />
"jshint.config": {}(编辑)


在指定"esversion"时使用双引号
或将此代码段复制到用户设置中:
"jshint.options": {
  "esversion": 6,
}



如果要为编辑器配置全局jshint设置,则无需创建.jshintrc文件。

评论


谢谢。对于使用Visual Studio代码的人来说,绝对是最好的答案。对于参考,请通过(Mac :)“代码”>“偏好设置”>“设置”进行用户设置。

– CopyJosh
17年11月14日在21:01

感谢您提供此附加解决方案。这是非常有帮助的。

–丹尼尔(Danielle)
19年8月20日在2:33

太好了,非常感谢。如果您使用VS Code,那么效果很好。另外,请注意,以防万一,在用户设置中,该名称现在为jshint.config。

–约翰·曾尼思(John Zenith)
20-10-3在12:26

#4 楼

如果您使用的是VSCode:

1.


转到首选项->设置(cmd + ,
在搜索栏中键入jshint.options
将鼠标悬停在它上方,然后单击铅笔图标
。它现在附加在右侧。
"esversion": 6添加到选项对象。


2.
/>
或简单地将其添加到用户设置:

"jshint.options": {
    "esversion": 6
}



[更新]新的vscode设置


转到首选项->设置(cmd + ,
键入jshint进行搜索




继续执行步骤2.



#5 楼

我花了很长时间试图解决这个问题。每个解决方案都讨论“设置选项”。我不知道那是什么意思终于,我明白了。您可以在文件/*jshint esversion: 6 */的顶部添加注释掉的行。



评论


如我所知,这样做的唯一问题是必须在使用的每个文件的顶部添加注释。更好的解决方案是在应用程序的根文件夹中创建一个名为.jshintrc的新文件,然后将以下代码添加到文件{“ esnext”:true}

–乔什·皮特曼(Josh Pittman)
16年2月16日在11:39

{“ esnext”:true}现在已弃用。您现在应该改为使用{“ esversion”:6}。

–cybersam
16 Mar 30 '16 at 23:48

我必须使用JSHint的过时版本,因为只有使用“ esnext”:true才能解决此问题。 “ esversion”:6无效。

–琼康
16 Sep 15'在10:54



然后升级您的JShint😉

–西里尔·杜尚(Cyril Duchon-Doris)
17年4月13日在15:12

#6 楼

您可以在jshint选项对象内指定esversion:6。请看图片。我正在使用grunt-contrib-jshint插件。



评论


这适用于使用Grunt的用户。将此添加到gruntfile.js

–JoeTidee
17年2月19日在1:18

谢谢,对我来说就像是一种魅力。无需忽略文件和独占页面中的esversioning的单独实现

– sg28
18-2-28在20:33



#7 楼

当您开始使用ECMAScript 6时,IDE会引发此错误。

有两个选项:

如果只有一个文件并且要使用es6,则只需在文件顶部添加以下行即可。

/*jshint esversion: 6 */


或者,如果您有许多js文件,或者您正在使用任何框架(例如nodejs express),则可以在根目录中创建一个名为.jshintrc的新文件,并在下面的代码中添加文件:

{
    "esversion": 6
}


如果要对每个项目使用es6版本以上,则可以配置IDE。

#8 楼

在您的package.json中,您可以告诉Jshint这样使用es6

"jshintConfig":{
    "esversion": 6 
}


评论


2020年4月,Visual Studio Code接受了答案

– ArifMustafa
20-4-10上午11:05

#9 楼

在根目录中创建.jshintrc文件,并在其中添加最新的js版本:"esversion": 9和asi版本:"asi": true(它将帮助您避免使用分号)
{
    "esversion": 9,
    "asi": true
}


#10 楼

如果您使用的是Webstorm,并且没有自己的配置文件,则只需在


设置|选项|轻松选项中启用EcmaScript.next。语言和框架| JavaScript |代码质量工具|
JSHint


请参阅此问题如何解决这些JSHint-ES6错误

#11 楼

如果使用的是Grunt配置,则需要执行以下步骤

Jshint中的警告消息:



解决方案:


设置jshint选项并映射.jshintrc.js文件




在其中创建.jshintrc.js文件文件中添加以下代码

{  
  "esversion": 6  
} 


配置此代码后,再次运行将跳过警告,



#12 楼

创建一个名为jshint_opts的文件,其内容如下:
{
“ esversion”:6
}

然后使用以下命令行调用jshint:

jshint --config jshint_opts lib / *。js

#13 楼

对于Mac上的SublimeText 3:


在您的根目录(或任何您喜欢的位置)中创建一个.jshintrc文件并指定esversion:

    # .jshintrc
    {
      "esversion": 6
    }



参考刚在SublimeLinter用户设置中创建的文件的pwd
(SublimeText>首选项>程序包设置> SublimeLinter>设置)

    // SublimeLinter Settings - User
    {
      "linters": {
        "jshint": {
          "args": ["--config", "/Users/[your_username]/.jshintrc"]
        }
      }
    }



退出并重新启动SublimeText


#14 楼

2020年5月这是我找到的一个简单解决方案,如果您的项目在c:目录下,请在Windows上为我的所有项目解决,创建新文件.jshintrc并将其保存在C目录中,打开此.jshintrc文件并写入{ "esversion": 6}和而已。警告应该消失,同样会在d目录中起作用




是的,您也可以仅通过创建一个项目根目录中的.jshintrc文件,并添加{ "esversion": 6}

#15 楼

为了在Dreamweaver CC 2018中解决此问题,我转到了
首选项,
编辑规则集-选择JS,
编辑/应用更改,
找到“ esnext”并更改了错误设置确实。
经过数小时的研究,它对我有用。希望对别人有帮助。

#16 楼

如果使用Sublime Text 3:


转到“首选项”->“设置”

在Preferences.sublime-settings下-用户添加“ esversion”:6



#17 楼

在Dreamweaver的新版本中解决此错误


转到“编辑”->“首选项”->“ Linting”

,然后转到js编辑规则集
和过去

“ jshintConfig”:{
“ esversion”:6
}