J'ai installé eslint-config-airbnb qui est censé pré-configurer ESLINT pour React:
Notre exportation par défaut contient toutes nos règles ESLint, y compris ECMAScript 6+ et React. Il nécessite eslint, eslint-plugin-import, eslint-plugin-react et eslint-plugin-jsx-a11y.
Mon .eslintrc
extension de sa configuration:
{ "extends": "eslint-config-airbnb",
"env": {
"browser": true,
"node": true,
"mocha": true
},
"rules": {
"new-cap": [2, { "capIsNewExceptions": ["List", "Map", "Set"] }],
"react/no-multi-comp": 0,
"import/default": 0,
"import/no-duplicates": 0,
"import/named": 0,
"import/namespace": 0,
"import/no-unresolved": 0,
"import/no-named-as-default": 2,
"comma-dangle": 0, // not sure why airbnb turned this on. gross!
"indent": [2, 2, {"SwitchCase": 1}],
"no-console": 0,
"no-alert": 0,
"linebreak-style": 0
},
"plugins": [
"react", "import"
],
"settings": {
"import/parser": "babel-eslint",
"import/resolve": {
"moduleDirectory": ["node_modules", "src"]
}
},
"globals": {
"__DEVELOPMENT__": true,
"__CLIENT__": true,
"__SERVER__": true,
"__DISABLE_SSR__": true,
"__DEVTOOLS__": true,
"socket": true,
"webpackIsomorphicTools": true
}
}
Malheureusement, j'obtiens l'erreur suivante lors de la peluchage d'un fichier .js avec le code React JSX à l'intérieur:
error JSX not allowed in files with extension '.js' react/jsx-filename-extension
Eslint-config-airbnb n'a-t-il pas déjà été configuré pour prendre en charge JSX, comme indiqué?
Que faut-il faire pour supprimer cette erreur?
C'est du travail pour moi. espère vous aider.
désactiver l'extension de nom de fichier jsx dans
.eslintrc
:"rules": {"react / jsx-filename-extension": [0]}
dans
webpack.config.js
:résoudre: {extensions: ['.js', '.jsx']},
la source
webpack.config.js
exemple.Appelez-moi un mannequin si cela ne fonctionne pas pour vous
la source
Si vous ne souhaitez pas modifier votre extension de fichier, vous pouvez exporter une fonction qui renvoie jsx, puis importer et appeler cette fonction dans votre fichier js.
puis
la source
Pour expliquer la réponse de Martin , il semble qu'il n'est pas possible, actuellement, de l'utiliser
JSX
dans React Native. Un PR a été créé mais annulé en raison de préoccupations concernant la fragmentation et les conséquences inconnues d'avoir des choses commeindex.ios.jsx
. Je ne sais pas comment AirBnb fonctionne autour de cela ou s'ils le font, mais j'ai essentiellement utilisé le mêmerules
bloc que Martin.la source
Suite à la documentation React :
En suivant le guide de style d'Airbnb :
Vous pouvez faire ceci:
la source