constを使用しているとJSHintが警告を出すのはなぜですか?


316

これは、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が毎回警告するだけです。


本文には質問はありませんが、おそらくすでに回答済みです"use esnext option"。なぜ?そのエラーメッセージはかなり明確ではありませんか?const標準のJS(まだ)ではありません。
Teemu

5
またはjshintの代わりにeslintを使用
Rakka Rage

回答:


558

などのECMAScript 6機能をconst利用する場合は、このオプションを設定して、JSHintが不要な警告を出さないようにする必要があります。

/ * jshint esnext:真* /編集2015年12月29日:反映するために更新構文オルガのコメント@

/*jshint esversion: 6 */

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

このオプションは、名前が示すように、コードがECMAScript 6固有の構文を使用することをJSHintに伝えます。 http://jshint.com/docs/options/#esversion

2017.06.11を編集この回答に基づいて別のオプションを追加しました。

インライン構成は個々のファイルに対して適切に機能し.jshintrcますが、プロジェクトのルートにファイルを作成してそこに追加することにより、プロジェクト全体に対してこの設定を有効にすることもできます。

{
  "esversion": 6
}

1
これは機能します...確かにそれはいくつかのコマンドラインパラメーターです!...ヒントヒントjshintフォーク
スコット

9
ドキュメントにWarning This option has been deprecated and will be removed in the next major release of JSHint. Use esversion: 6 instead.「Webstorm組み込みプラグインが新しいオプションを認識しない」と表示されています。両方を指定してしまいました。
Olga、

5
私にとっては、.jshintではなく.jshintrc、jshintバージョンに違いがあるかどうか不明
teknopaul

おっとっと。その通りその通り。訂正。
James Hibbard、2017年

1
その後、Atomを再起動します(該当する場合
-Vitor Braga

280

次のコンテンツを含む.jshintrcという名前のファイルをアプリのルートに追加して、ソリューション全体にこの設定を適用できます。

{
    "esversion": 6
}

Jamesの回答は、ファイルにコメント/*jshint esversion: 6 */を追加できることを示唆していますが、多くのファイルを制御する必要がある場合は、必要以上に手間がかかります。


1
これを使用するための構成はありますか?私のjshintは、内部にあるものを無視し.jshintrcます。
イーサン・ヤン

1
@EthanYang、いいえ。追加の設定はありません。JSHintがファイルを見つけられることを確認してください。ドキュメントから:JSHint will start looking for this file in the same directory as the file that's being linted. If not found, it will move one level up the directory tree all the way up to the filesystem root. (Note that if the input comes from stdin, JSHint doesn't attempt to find a configuration file)
Zanon

59

exportステートメントを使用しているときにも同じ警告が表示されました。私はVS Codeを使用しており、Wenlong Jiangのソリューションに同様のアプローチを使用しました。

  1. ユーザー設定
  2. JSHint設定
  3. "jshint.options": {} (編集)
  4. 指定するときは二重引用符を使用します"esversion"

    または、このスニペットをユーザー設定にコピーします。

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

.jshintrcエディターのグローバルjshint設定を構成する場合は、ファイルを作成する必要はありません。


8
ありがとうございました。ビジュアルスタジオのコードを使用している人にとって、間違いなくここでの最良の答えです。refの場合、(Mac :) [コード]> [設定]> [設定]を使用してユーザー設定。
CopyJosh

1
この追加のソリューションをありがとう。とても助かります。
dprogramz

41

VSCodeを使用している場合:

1。

  • 設定 -> 設定cmd + ,)に移動します
  • jshint.options検索バーに入力します
  • それにカーソルを合わせて鉛筆アイコンをクリックします
  • その右側に追加されました。
  • "esversion": 6オプションオブジェクトに追加します。

2。

または、単にこれをユーザー設定に追加します。

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

[更新]新しいvscode設定

  • 設定 -> 設定cmd + ,)に移動します
  • 入力しjshintた検索へ

VSCode設定

  • ステップを続行 2.

32

私はこれを修正するために長い年月を費やしました。すべてのソリューションは「オプションの設定」について話します。どういう意味かわかりません。最後に、私はそれを理解しました。ファイルの先頭にコメント化された行を含めるだけです/*jshint esversion: 6 */

解決


24
この方法で行うことの唯一の問題は、私が発見したように、使用するすべてのファイルの先頭にコメントを追加する必要があることです。より良い解決策は、名前を付けたアプリのルートフォルダーに新しいファイルを作成し.jshintrc、次のコードをファイルに追加することです{ "esnext": true }
Josh Pittman

17
{ "esnext": true }非推奨になりました{ "esversion": 6 }代わりに使用する必要があります。
cybersam 2016年

3
JSHintの古いバージョンを使用している必要があります。これを使用することによってのみ、"esnext": trueこれを解決できました。"esversion": 6効果はありませんでした。
Joncom、2016

4
次にJShintをアップグレードします😉
シリルDuchon-ドリス

18

jshintオプションオブジェクト内でesversion:6を指定できます。画像をご覧ください。grunt-contrib-jshintプラグインを使用しています。

ここに画像の説明を入力してください


2
これはGruntを使用している人のために働きます。これをgruntfile.jsに追加
JoeTidee

1
ありがとう、私にとっては魅力のように働きました。ファイルを無視する必要はなく、排他的なページでのエスバージョン処理の個別の実装
sg28

3

ECMAScript 6の使用を開始すると、IDEによってこのエラーがスローされます。

次の2つのオプションがあります。

ファイルが1つしかなく、es6を使用する場合は、ファイルの上部に以下の行を追加します。

/*jshint esversion: 6 */

または、jsファイルの数がある場合、またはフレームワーク(nodejs expressなど)を使用している場合は.jshintrc、ルートディレクトリに名前の付いた新しいファイルを作成し、そのファイルに以下のコードを追加できます。

{
    "esversion": 6
}

各プロジェクトでes6バージョン以降を使用する場合は、IDEを構成できます。


2

package.jsonで、Jshintに次のようにes6を使用するように指示できます

"jshintConfig":{
    "esversion": 6 
}

Visual Studio Codeの2020年4月に受け入れられた回答
ArifMustafa


1

Grunt設定を使用している場合は、次の手順を実行する必要があります

Jshintの警告メッセージ:

ここに画像の説明を入力してください

解決:

  1. jshintオプションを設定し、.jshintrc.jsファイルをマップします。

ここに画像の説明を入力してください

  1. そのファイルに.jshintrc.jsファイルを作成し、次のコードを追加します
{  
  "esversion":6  
} 

これを設定した後、もう一度実行すると警告がスキップされます。

ここに画像の説明を入力してください


0

次の内容でjshint_optsというファイルを作成します。{"esversion":6}

次に、次のコマンドラインでjshintを起動します。

jshint --config jshint_opts lib / *。js


0

Mac上のSublimeText 3の場合:

  1. ルートディレクトリ(または任意の場所)に.jshintrcファイルを作成し、esversionを指定します。
    # .jshintrc
    {
      "esversion": 6
    }
  1. SublimeLinterユーザー設定(Sublime Text> Preference> Package Settings> SublimeLinter> Settings)で作成したファイルのパスワードを参照します。
    // SublimeLinter Settings - User
    {
      "linters": {
        "jshint": {
          "args": ["--config", "/Users/[your_username]/.jshintrc"]
        }
      }
    }
  1. SublimeTextを終了して再起動する

0

2020年5月には、ここで私が見つけたシンプルなソリューションだとそれはあなたのプロジェクトは、C内のどこかにある場合、Windows上で、私のプロジェクトのすべてのために解決されます:、ディレクトリを新しいファイル.jshintrcを作成し、Cディレクトリに保存し、この.jshintrcファイルと書き込みを開く{ "esversion": 6}とのことそれ。警告は消えるはずです、同じことがdディレクトリで機能します

ここに画像の説明を入力してください

ここに画像の説明を入力してください はい、プロジェクトのルートに.jshintrcファイルを作成して追加するだけで、特定のプロジェクトに対してこの設定を有効にすることもできます { "esversion": 6}


0

ルートディレクトリに.jshintrcファイルを作成し、そこに最新のjsバージョンとasiバージョンを追加します(セミコロンの使用を避けるのに役立ちます)。"esversion": 9"asi": true

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

0

Dreamweaver CC 2018でこれを修正するために、設定に進み、ルールセットを編集します-JSを選択し、変更を編集/適用し、「esnext」を見つけて、false設定をtrueに変更しました。それは何時間もの研究の後に私のために働きました。それが他の人を助けることを願っています。


-1

Sublime Text 3を使用する場合:

  • [設定] -> [設定]に移動します
  • Preferences.sublime-settingsの-ユーザー「esversion」を追加:6

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.