我已经安装了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 文件进行 lint 时出现了以下错误:
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"] }], }