如果我使用const,为什么JSHint会发出警告?

时间:2014-12-12 10:39:01

标签: javascript node.js const jslint jshint

这是我在使用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每次都警告我。

18 个答案:

答案 0 :(得分:435)

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

/ * jshint esnext:true * / 编辑2015.12.29 :更新语法以反映@Olga's comments

/*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 :添加了基于this answer的其他选项。

虽然内联配置适用于单个文件,但您也可以通过在项目的根目录中创建.jshintrc文件并将其添加到整个项目中来启用此设置。

{
  "esversion": 6
}

答案 1 :(得分:244)

您可以在应用的 root 中添加名为 .jshintrc 的文件,其中包含以下内容,以便为整个解决方案应用此设置

{
    "esversion": 6
}

James' answer建议您为每个文件添加评论/*jshint esversion: 6 */,但如果您需要控制多个文件,则需要做的工作量超过必要。

答案 2 :(得分:34)

使用导出语句时,我收到了同样的警告。我正在使用VS Code并使用类似于Wenlong Jiang的解决方案。

  1. 用户设置
  2. JSHint config
  3. "jshint.options": {}(编辑)
  4. 指定"esversion"

    时,请使用双引号

    或将此代码段复制到用户设置:

    "jshint.options": {
      "esversion": 6,
    }
    
  5. 如果要为编辑器配置全局jshint设置,则无需创建.jshintrc文件

答案 3 :(得分:31)

我花了很多年时间试图解决这个问题。每个解决方案都涉及设置选项&#39;。我不知道这意味着什么。最后,我弄清楚了。您只需在文件/*jshint esversion: 6 */的顶部添加注释掉的行。

Solution

答案 4 :(得分:24)

如果你正在使用VSCode:

<强> 1

  • 转到偏好设置 - &gt; 设置cmd + ,
  • 在搜索栏中输入jshint.options
  • 将鼠标悬停在上面,然后点击铅笔图标
  • 现在附在右侧。
  • "esversion": 6添加到选项对象。

<强> 2

或者只是将其添加到您的用户设置:

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

[更新]新的vscode设置

  • 转到偏好设置 - &gt; 设置cmd + ,
  • 在搜索中输入jshint

VSCode Settings

  • 继续执行步骤2.

答案 5 :(得分:16)

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

enter image description here

答案 6 :(得分:3)

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

{
    "esversion": 9,
    "asi": true
}

答案 7 :(得分:2)

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

有两个选项:

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

/*jshint esversion: 6 */

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

{
    "esversion": 6
}

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

答案 8 :(得分:1)

如果您正在使用Webstorm,并且没有自己的配置文件,则只需在[p]中的“放宽”选项中启用EcmaScript.next

  

设置|语言和框架| JavaScript |代码质量工具|   JSHint

看到这个问题How-do-I-resolve-these-JSHint-ES6-errors

答案 9 :(得分:1)

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

Jshint中的警告消息:

enter image description here

解决方案:

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

enter image description here

  1. 在该文件中创建.jshintrc.js文件,添加以下代码
{  
  "esversion": 6  
} 

配置完成后,再次运行它将跳过警告,

enter image description here

答案 10 :(得分:0)

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

"jshintConfig":{
    "esversion": 6 
}

答案 11 :(得分:0)

对于Mac上的SublimeText 3:

  1. 在根目录(或您喜欢的任何位置)中创建一个.jshintrc文件并指定esversion:
    # .jshintrc
    {
      "esversion": 6
    }
  1. 参考您刚刚在SublimeLinter用户设置中创建的文件的密码 (“崇高文本”>“首选项”>“软件包设置”>“ SublimeLinter”>“设置”)
    // SublimeLinter Settings - User
    {
      "linters": {
        "jshint": {
          "args": ["--config", "/Users/[your_username]/.jshintrc"]
        }
      }
    }
  1. 退出并重新启动SublimeText

答案 12 :(得分:0)

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

enter image description here

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

来为特定项目启用此设置。

答案 13 :(得分:0)

使用以下内容创建一个名为jshint_opts的文件: { &#34; esversion&#34;:6 }

然后使用类似命令行的方式调用jshint:

jshint --config jshint_opts lib / * .js

答案 14 :(得分:0)

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

答案 15 :(得分:0)

创建 .jshintrc 文件没有必要

如果您使用的是 ECMAScript 6,那么您需要做的就是告诉 JSHint:

  1. 转到文件>设置
  2. 导航到语言和框架 > JavaScript > 代码质量工具 > JSHint
  3. 向下滚动以查找警告与指定的 ECMAScript 版本不兼容
  4. 点击设置
  5. 输入6,然后按[设置]
  6. 点击[确定]

答案 16 :(得分:-1)

如果使用Sublime Text 3:

  • 转到首选项-> 设置
  • Preferences.sublime-settings-用户下,添加“ esversion”:6

答案 17 :(得分:-2)

在新版Dreamweaver中解决此错误

  • 转到“编辑”->“首选项”->“涂胶”
  • 以及go-to js Edit规则集 和过去

    “ jshintConfig”:{ “ esversion”:6 }