2015-09-25 6 views
5

ESLintはindex30.jsファイルの先頭に"use strict"(6行目のような単純なサーバー)を使用する必要はありません。https://nodejs.org/en/about/です。どうやら、すべてのノードモジュールはすでに厳格モードになっています。意味をなさないNode.jsとeslintは "use strict"について同意していません

しかし、node index.jsを実行すると、私に "にSyntaxError。:strictモードの外にサポートされていません[せ]" を取得しますは「冗長」"use strict"プラグマで実行を行います。

なぜ矛盾?このノードモジュールが実際には厳密にデフォルトであることをノードに知らせてはいけませんか?これは、ノード、ESLint、または私のIDEのいくつかの単純な誤設定に起因するものでしょうか?

+1

あなたは '--use-strict'フラグでノードを実行することができます –

+2

ESLintは、 "間違った" であるが、構成:'/*厳密eslint:*/'0。 – Amit

+0

それは、@ExplosionPills!ありがとう。なぜそれを答えて、いくつかのポイントを獲得しないでください? –

答えて

9

ESLintは、それが有効か無効警告またはエラーであると考えるかについて独自の決定を行います。あなたは、eslint/jslint/jshintが言っていることを他のすべての上に忠告して扱わなければなりません。どこかの人によると、彼らの提案は最適で完全に有効です。このフラグ

  • 使用--use-strictを指定するために構成されたコード内のコメントで

    • 使用eslintフラグ
    • 実行eslint

      言われていること、あなたは、この特定の警告を抑制するためのいくつかのオプションを持っています実行中のフラグnode

    この警告を受け取る理由の具体的な理由は、d oデフォルトのノードインタープリタは完全にES6対応ではありません。たとえば、ノード4では、が厳格なモード以外では使用できません。letはES6キーワードです。

  • +2

    はhttps://nodejs.org/en/docs/es6/とhttps://groups.google.com/forum/#!topic/v8-users/3UXNCkAU8Esでこのの公式ドキュメントを見つけました。基本的には、下位互換性の理由から、ノードは現在ES6ブロックスコープ機能( 'let'、' const')に対して厳密なモードを要求しています。将来的には、 'let'では--use-strictフラグは不要です。これは一時的な煩わしさです。 –

    関連する問題