我已经安装了eslint-config- airbnb,它应该为React预配置ESLINT:
我们的默认导出包含我们所有的ESLint规则,包括ECMAScript 6+和React。它需要eslint,eslint-plugin- import,eslint-plugin-react和eslint-plugin-jsx-a11y。
我.eslintrc扩展了它的配置:
.eslintrc
{ "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 } }
不幸的是,当我在其中插入带有React JSX代码的.js文件时遇到以下错误:
error JSX not allowed in files with extension '.js' react/jsx-filename-extension
如前所述,eslint-config-airbnb是否已配置为支持JSX?
应该怎么做才能消除该错误?
将文件扩展名更改为.jsx,或者禁用jsx-filename- extension规则。您可以将以下内容添加到配置中,以允许.jsJSX扩展。
.jsx
.js
"rules": { "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], }