运行Airbnb的Eslint配置并使用.jsx
扩展名运行时遇到问题。React ESLint配置“意外的文件扩展名JSX”
index.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import App from './components/App.jsx'; <<<<<<<<< Unexpected use of file extension "jsx"...
require('./index.scss');
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById('root'),
);
所以看这件事,发现另一SO这是结合Restrict file extensions that may contain JSX
好了,更新了我的.eslintrc
在我的规则,以反映这一
.eslintrc
{
"extends": "airbnb",
"env":{
"browser": true
},
"plugins": [
"react",
"jsx-a11y",
"import"
],
"rules": {
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
"indent": [2, "tab", { "SwitchCase": 1, "VariableDeclarator": 1 }],
"no-tabs": 0,
"react/prop-types": 0,
"react/jsx-indent": [2, "tab"],
"react/jsx-indent-props": [2, "tab"]
}
}
但仍然收到相同的错误。还有什么我失踪的?
依赖
- “eslint”: “^ 4.10.0”,
- “eslint-配置-的Airbnb”: “^ 16.1.0”,
- “eslint-plugin-导入“: ”^ 2.8.0“,
- ”eslint-插件-JSX-A11Y“: ”^ 6.0.2“,
- ”eslint-插件反应“: ”^ 7.4.0“,
我不想写出符合Airbnb样式的扩展名,这些扩展名声明省略它们。这很好,但问题是,如果我省略了扩展名,那么路径将无法解析。然后导致如何解决解析路径错误。原来你可以用一个解析对象来配置Webpack来处理'.jsx'。在Airbnb的文档中,我无法找到“省略扩展名,并且在这样做时,您还需要执行其他步骤来解决您的文件...使用Webpack请点击此链接”。感觉就像不完整的文档imo。 –