2016-08-04 19 views
10

Próbuję skonfigurować linting ze standardami Javascript Airbnb w moim projekcie React, używa webpacka.Konfigurowanie Airbnb ESLint z React i Webpack

Zaktualizowany o najnowsze pakiety na podstawie komentarzy.

"babel-eslint": "^6.1.2", 
"eslint": "^3.2.2", 
"eslint-config-airbnb": "^10.0.0", 
"eslint-plugin-import": "^1.12.0", 
"eslint-plugin-jsx-a11y": "^2.0.1", 
"eslint-plugin-react": "^6.0.0", 
"jshint": "^2.9.2", 
"jshint-loader": "^0.8.3", 
"json-loader": "^0.5.4", 

Mam też konfigurację preloader w moim WebPACK config

preLoaders: [ 
    { 
     test: /\.jsx?$/, 
     loaders: ['eslint'], 
     // define an include so we check just the files we need 
     include: PATHS.app 
    } 
], 

i następujący skonfigurować do uruchamiania skryptu

"lint": "eslint . --ext .js --ext .jsx --ignore-path .gitignore --cache", 

Mam też plik .eslintrc który ma następujący

{ 
    "extends": "airbnb", 
    "env": { 
     "node": true, 
     "es6": true 
    } 
} 

To daje mi następujący błąd:

Configuration for rule "react/jsx-sort-props" is invalid: 
Value "data["0"].shorthandLast" has additional properties. 

Jeśli usunąć plik .eslintrc który Myślałem być sprzeczne, pojawia się następujący błąd:

error Parsing error: The keyword 'const' is reserved 

a następnie błędu npm co powoduje, że zadanie do wyjścia.

Każda pomoc zostanie doceniona!

+0

Wypróbowałeś to z eslint 3? Były pewne ostatnie zmiany i na podstawie błędu, dlatego się psuje. Jeśli nie możesz użyć eslint 3 z jakiegoś powodu, musisz użyć starszej wersji zestawu, który jest z nią kompatybilny. –

+0

Naprawdę mam instalację 3.9.5 na platformie eLint @ JuhoVepsäläinen, czy jest to wystarczająco późna wersja? – Ash

+1

Odebrze '" eslint ":"^2.13.1 ",' nawet jeśli masz to zainstalowane globalnie. –

Odpowiedz

8

Tak, miałem ten sam problem, ale naprawiłem ten błąd przy użyciu ostatniej wersji obecnych pakietów:

"eslint": "3.2.2", 
"eslint-config-airbnb": "10.0.0", 
"eslint-loader": "1.5.0", 
"eslint-plugin-import": "1.12.0", 
"eslint-plugin-jsx-a11y": "2.0.1", 
"eslint-plugin-mocha": "2.2.0", 
"eslint-plugin-react": "6.0.0", 

I proszę, zrób ten tutorial: React Code Style with ESLint + Babel + Webpack

module: { 
    preLoaders: [ 
     { 
     test: /\.jsx?$/, 
     loaders: ['eslint-loader'], 
     include: path.join(__dirname, 'src'), 
     exclude: path.join(__dirname, 'src/app/container') 
     } 
    ], 
... 
    eslint: { 
     configFile: './.eslintrc', //your .eslintrc file 
     emitWarning: true 
    } 

.eslintrc plik

{ 
     "extends": "airbnb" 
    } 
+0

To jest dokładnie to, co musiałem zrobić, musiałem usunąć wszystkie pakiety i ponownie zainstalować, ponieważ było kilka whacky konfliktów! – Ash

+3

Nie jestem pewien o usunięciu globalnego eslint lub reinstalacji ... Zrobiłem to. Rzeczywiście wznowiono Atom, aby to zniknęło. – Devin

Powiązane problemy