How to config ESLint for React on Atom Editor

ReactjsAtom EditorReact JsxEslint

Reactjs Problem Overview


In Atom Editor I installed the following plugins

  1. linter
  2. linter-eslint

It seems they don't recognize the JSX syntaxis.

I have it working on the command line but had to use other plugins like esprima-fb and eslint-plugin-react. Looks like there are no such plugins for Atom Editor and would like to know if anyone of you knows a way to hack around this.

Reactjs Solutions


Solution 1 - Reactjs

To get Eslint working nicely with React.js:

  1. Install linter & linter-eslint plugins
  2. Run npm install eslint-plugin-react
  3. Add "plugins": ["react"] to your .eslintrc config file
  4. Add "ecmaFeatures": {"jsx": true} to your .eslintrc config file

Here is an example of a .eslintrc config file:

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

    "globals": {
        "React": true
    },

    "ecmaFeatures": {
        "jsx": true
    },

    "plugins": [
        "react"
    ]
}

I am using Eslint v1.1.0 at the moment.

Side note: I had to install both eslint and eslint-plugin-react as project dependencies (e.g., npm install eslint eslint-plugin-react --save-dev). Hopefully this helps.

Solution 2 - Reactjs

Updated answer for 2016: just install the react package in Atom and add a .eslintrc file in your project root (or in your home dir) containing the following:

{
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "env": {
    "es6": true
  }
}

And re-open any files containing JSX and it should work.

Solution 3 - Reactjs

You need to edit a project local .eslintrc file that will get picked up by ESLint. If you want integration with Atom, you can install the plugins linter and linter-eslint.

To quickly setup ESLint for React best practices, current best option is installing the npm package eslint-plugin-react and extending their recommended configuration instead of toggling many rules manually:

{
  "extends": [ "eslint:recommended", "plugin:react/recommended" ],
  "plugins": [ "react" ]
}

This will enable eslint-plugin-react and recommended rules from ESLint & React presets. There is more valuable information in the latest ESLint user-guide itself.

Here is an example of parser options optimized for ES6 and webpack:

{
  "parserOptions": {
    "sourceType": "module",
    "ecmaVersion": 6,
    "ecmaFeatures": {
      "impliedStrict": true,
      "experimentalObjectRestSpread": true,
      "jsx": true
    }
  }
}

Solution 4 - Reactjs

I use Atom and it works just fine. You just need an .eslintrc in your project root which tells ESLint that you're using eslint-plugin-react.

Solution 5 - Reactjs

  1. For Mac user: Go to Atom --> preferences --> Install --> search package linter-eslint --> click install

  2. For Ubuntu user: Go to Edit --> preferences --> Install --> search package linter-eslint --> click install

  3. go to command line ---> npm install --save-dev eslint-config-rallycoding

  4. Come to atom make new file .eslintrc and extend the rallycoding.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncuadramanView Question on Stackoverflow
Solution 1 - ReactjsJon SawView Answer on Stackoverflow
Solution 2 - ReactjsjackocnrView Answer on Stackoverflow
Solution 3 - ReactjsrafiView Answer on Stackoverflow
Solution 4 - ReactjsAnders EkdahlView Answer on Stackoverflow
Solution 5 - ReactjsiPragmatechView Answer on Stackoverflow