Question

I love syntastic for javascript but I am using the new ES6 module tranpiler and syntastic is not happy about these type of statements:

import Typeahead from './lib/components/ember-typeahead';

Is there anyway that I can keep syntastic quiet about this type of statement?

Was it helpful?

Solution

Syntastic will use JSHint to check JavaScript syntax if it's available (which I recommend over jslint).

JSHint supports es6 syntax with the esnext flag, which includes support for the export and import module syntax.

I suggest adding a .jshintrc file to your project to control JSHint's behavior (and thus Syntastic's) for your entire project:

{
  "esnext": true
}

Note: be careful, since using the esnext flag will add support for all of es6's new language sytax that JSHint currently supports, not just the module syntax.

Note: esnext has now been deprecated in favour of the esversion syntax.

{
  "esversion": 6
}

OTHER TIPS

To work around this, I'd suggest the following steps as recommended here: Configure Vim for React:

Install eslint and babel-eslint:

npm install -g eslint babel-eslint

Create a local .eslintrc config in your project or a global ~/.eslintrc configuration:

{
    "parser": "babel-eslint",
    "env": {
        "browser": true,
        "node": true
    },
    "settings": {
        "ecmascript": 6
    },
    "rules": {
        "strict": 0 // you can add more rules if you want
    }
}

Finally, configure syntastic to use eslint:

let g:syntastic_javascript_checkers = ['eslint']
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top