2016-05-01 15 views
0

So folgte ich den Anweisungen auf guide.meteor.com, um meine package.json eslintConfig einzurichten.ESLint React Parsing Error

"eslintConfig": { 
    "plugins": [ 
    "meteor" 
    ], 
    "extends": [ 
    "airbnb/base", 
    "plugin:meteor/recommended" 
    ], 
    "rules": { 
    "meteor/eventmap-params": [ 
     2, 
     { 
     "templateInstanceParamName": "instance" 
     } 
    ], 
    "import/no-unresolved": [ 
     2, 
     { 
     "ignore": [ 
      "^meteor/" 
     ] 
     } 
    ], 
    "semi": [ 
     "error", 
     "never" 
    ] 
    } 
} 

Es funktioniert gut, bis ich versuche und React verwenden.

main.js:

Meteor.startup(() => { 
    render(<App />, document.getElementById('render-target')) 
}) 

, dass der Fehler führt: [eslint] Parsing error: Unexpected token <

Ich habe das Plugin reagieren:

"devDependencies": { 
    "eslint": "^2.9.0", 
    "eslint-config-airbnb": "^8.0.0", 
    "eslint-plugin-import": "^1.6.1", 
    "eslint-plugin-jsx-a11y": "^1.0.4", 
    "eslint-plugin-meteor": "^3.5.2", 
    "eslint-plugin-react": "^5.0.1" 
} 

Ich habe folgenden Beispiele von Google versucht, aber keiner von ihnen geholfen. Ich habe versucht, 'react' und 'eslint-plugin-react' zu den Plugins hinzuzufügen und nichts hat sich geändert. Ich bin blöd, die Lösung wurde nicht im ESLint-Abschnitt des Meteorführers bereitgestellt. Jede Hilfe wäre willkommen.

+0

Versuchen Sie, 'babel-eslint' zu installieren – ZekeDroid

Antwort

1

Installieren Sie babel-eslint und zu Ihrer .eslintrc fügen Sie "parser": "babel-eslint" hinzu. Sie verpassen die ES6-Übertragung, so dass es einfach abstürzt.

+0

Ich denke Meteor kommt vorverpackt mit babel ... Oder muss ich es als Dev-Abhängigkeit hinzufügen? –

+0

Ah ja, das Hinzufügen zu den Dev-Abhängigkeiten hat den Trick gemacht. Dankesehr! –

1

Sie müssen babel-eslint nicht installieren. Espree (nativer ESLint-Parser) unterstützt vollständig ES6, ES7 und Object Rest/Spread. Der Grund, warum ESLint die Analyse der Datei beendet hat, liegt darin, dass Sie jsx nicht aktiviert haben, daher wird es als falsche Syntax betrachtet.

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

das obige Snippet zu Ihrer Konfigurationsdatei hinzufügen und es sollte anfangen zu arbeiten. Für weitere Informationen lesen Sie bitte Specifying Parser Options