Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set jshint/jsxhint "esnext" option in Atom

I am using Atom's linter, react, and linter-jshint/linter-jsxhint. In my JSX files, I keep getting the warning

Warning: 'import' is only available in ES6 (use esnext option). (W119)

That's pretty straightforward. I did some searching, and found that this can be set under the jshintConfig option in package.json (when using NPM). My project uses NPM and I have a package.json. I added:

"jshintConfig": {   "esnext": true } 

After that, I did a reload but the warnings persist. I also modified my linter-jshint/linter-jsxhint config in Atom (config.cson) with:

"linter-jshint":   harmony: true   esnext: true  "linter-jsxhint":   harmony: true   esnext: true 

And did a reload but that didn't help it either.

So: when using linter-jshint/linter-jsxhint as Atom packages, how to I set the esnext option?

like image 631
Matthew Herbst Avatar asked Jun 26 '15 19:06

Matthew Herbst


2 Answers

You can create a .jshintrc in your project folder, it will be read by the linter as a json source file.

To use esnext option,

{     "esnext": true } 

You will probably need to reopen your JS file to be able to see the new changes.

like image 104
peduxe Avatar answered Sep 19 '22 20:09

peduxe


First possibility, recommended : you can create a .jshintrc in you home directory and jshint will read it in case there is none in the project directory. You might need to restart Atom after.

Another possibility not recommended : you could also change the config of jshint in Atom and specify the location of your global .jshintrcif for some reason you don't want to put it in your home directory with the flag --config

'linter-jshint':   'jshintExecutablePath': /path/to/jshint --config /path/to/.jshinrc 

Run 'which jshint' to find the path. It is not recommended because every other .jshinrc file (in the project, etc.) will be ignore:

jshint will look for this configuration in a number of locations, stopping at the first positive match:

  • The location specified with the --config flag

  • A file named package.json located in the current directory or any parent of the current directory (the configuration should be declared as the jshintConfig attribute of that file's JSON value)

  • A file named .jshintrc located in the current directory or any parent of the current directory

  • A file named .jshintrc located in the current user's "home" directory (where defined)

like image 22
Mathieu Dutour Avatar answered Sep 19 '22 20:09

Mathieu Dutour