0

I am using Visual Studio 2017 and eslint 2.0 (I assume), which is built into Visual Studio.

Eslint works fine except when the JS file contains ES6 features such as async and const. In this case, the Error List window in Visual Studio remains empty and there are no eslint messages displayed. It seems that eslint just fails silently when it stumbles upon a file with those keywords.

Eslint must support ES6 and I also enabled ES6 in the .eslintrc file.

I am not sure how to see the output from eslint to see if there's any error, because Visual Studio runs it in the background.

How do I run eslint in Visual Studio when my JS file contains ES6 features?

Here's my .eslintrc:

{
  "parserOptions": {
    "ecmaVersion": 6
  },

  "ecmaFeatures": {
    "modules": true,
    "experimentalObjectRestSpread": true
  },

  "env": {
    "browser": false,
    "es6": true,
    "node": true
  },

  "plugins": [
    "standard"
  ],

  "globals": {
    "document": false,
    "navigator": false,
    "window": false
  },

  "rules": {
    "accessor-pairs": 2,
    "arrow-spacing": [
      2,
      {
        "before": true,
        "after": true
      }
    ],
    "block-spacing": [ 2, "always" ],
    "brace-style": [
      2,
      "1tbs",
      { "allowSingleLine": true }
    ],
    "comma-dangle": [ 2, "always-multiline" ],
    "comma-spacing": [
      2,
      {
        "before": false,
        "after": true
      }
    ],
    "comma-style": [ 2, "last" ],
    "constructor-super": 2,
    "curly": [ 2, "multi-line" ],
    "dot-location": [ 2, "property" ],
    "eol-last": 0,
    "eqeqeq": [ 2, "allow-null" ],
    "generator-star-spacing": [
      2,
      {
        "before": true,
        "after": true
      }
    ],
    "handle-callback-err": [ 2, "^(err|error)$" ],
    "indent": [
      2,
      2,
      { "SwitchCase": 1 }
    ],
    "key-spacing": [
      2,
      {
        "beforeColon": false,
        "afterColon": true
      }
    ],
    "keyword-spacing": [
      2,
      {
        "before": true,
        "after": true
      }
    ],
    "new-cap": [
      2,
      {
        "newIsCap": true,
        "capIsNew": false
      }
    ],
    "new-parens": 2,
    "no-array-constructor": 2,
    "no-caller": 2,
    "no-class-assign": 2,
    "no-cond-assign": 2,
    "no-const-assign": 2,
    "no-control-regex": 2,
    "no-debugger": 2,
    "no-delete-var": 2,
    "no-dupe-args": 2,
    "no-dupe-class-members": 2,
    "no-dupe-keys": 2,
    "no-duplicate-case": 2,
    "no-empty-character-class": 2,
    "no-labels": [
      2,
      {
        "allowLoop": false,
        "allowSwitch": true
      }
    ],
    "no-eval": 2,
    "no-ex-assign": 2,
    "no-extend-native": 2,
    "no-extra-bind": 2,
    "no-extra-boolean-cast": 2,
    "no-extra-parens": [ 2, "functions" ],
    "no-fallthrough": 2,
    "no-floating-decimal": 2,
    "no-func-assign": 2,
    "no-implied-eval": 2,
    "no-inner-declarations": [ 2, "functions" ],
    "no-invalid-regexp": 2,
    "no-irregular-whitespace": 2,
    "no-iterator": 2,
    "no-label-var": 2,
    "no-lone-blocks": 2,
    "no-mixed-spaces-and-tabs": 2,
    "no-multi-spaces": 2,
    "no-multi-str": 2,
    "no-multiple-empty-lines": [
      2,
      { "max": 1 }
    ],
    "no-native-reassign": 2,
    "no-negated-in-lhs": 2,
    "no-new": 2,
    "no-new-func": 2,
    "no-new-object": 2,
    "no-new-require": 2,
    "no-new-wrappers": 2,
    "no-obj-calls": 2,
    "no-octal": 2,
    "no-octal-escape": 2,
    "no-proto": 2,
    "no-redeclare": 2,
    "no-regex-spaces": 2,
    "no-return-assign": 2,
    "no-self-compare": 2,
    "no-sequences": 2,
    "no-shadow-restricted-names": 2,
    "no-spaced-func": 2,
    "no-sparse-arrays": 2,
    "no-this-before-super": 2,
    "no-throw-literal": 2,
    "no-trailing-spaces": 2,
    "no-undef": 2,
    "no-undef-init": 2,
    "no-unexpected-multiline": 2,
    "no-unneeded-ternary": [
      2,
      { "defaultAssignment": false }
    ],
    "no-unreachable": 2,
    "no-unused-vars": [
      2,
      {
        "vars": "all",
        "args": "none"
      }
    ],
    "no-useless-call": 2,
    "no-with": 2,
    "one-var": [
      2,
      { "initialized": "never" }
    ],
    "operator-linebreak": [
      2,
      "after",
      {
        "overrides": {
          "?": "before",
          ":": "before"
        }
      }
    ],
    "padded-blocks": [ 2, "never" ],
    "quotes": [ 2, "single" ],
    "radix": 2,
    "semi": [ 2, "always" ],
    "semi-spacing": [
      2,
      {
        "before": false,
        "after": true
      }
    ],
    "space-before-blocks": [ 2, "always" ],
    "space-before-function-paren": [ 2, "always" ],
    "space-in-parens": [ 2, "never" ],
    "space-infix-ops": 2,
    "space-unary-ops": [
      2,
      {
        "words": true,
        "nonwords": false
      }
    ],
    "spaced-comment": [
      2,
      "always",
      { "markers": [ "global", "globals", "eslint", "eslint-disable", "*package", "!", "," ] }
    ],
    "use-isnan": 2,
    "valid-typeof": 2,
    "wrap-iife": [ 2, "any" ],
    "yoda": [ 2, "never" ],

    "standard/object-curly-even-spacing": [ 2, "either" ],
    "standard/array-bracket-even-spacing": [ 2, "either" ],
    "standard/computed-property-even-spacing": [ 2, "even" ]
  }
}
  • Isn't async part of the [ES7 standard](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Specifications)? For `const` i would expect it to work – Icepickle Sep 22 '17 at 08:49
  • @Icepickle Makes sense, but when i change to `ecmaVersion: 7", eslint stops working entirely, even on plain old JS. There's just no output shown in the Error List window. –  Sep 22 '17 at 09:17
  • Does [this](https://stackoverflow.com/questions/38296761/how-to-support-es7-in-eslint) work? There they suggest to use babel-eslint instead – Icepickle Sep 22 '17 at 09:42
  • @Icepickle Miracle! Adding the line `"parser": "babel-eslint",` at the top level of `.eslintrc` file worked. Please post this as an answer and I'll accept –  Sep 25 '17 at 03:03
  • I really don't want to post it as an answer, as I rather see it as a duplicate, feel free to post your own answer if you can add something to the answer given there ;) – Icepickle Sep 25 '17 at 10:45
  • Possible duplicate of [How to support ES7 in ESLint](https://stackoverflow.com/questions/38296761/how-to-support-es7-in-eslint) – Icepickle Sep 25 '17 at 10:45

0 Answers0