【发布时间】:2020-04-25 05:32:13
【问题描述】:
当我运行npx create-react-app ... 时,正在为我创建一个简单的 React 项目。
然后,当我查看package.json 时,似乎有一些 ESLint 存在的证据,因为有这样的:
"eslintConfig": {
"extends": "react-app"
},
但是,每当我将 ESLint 作为开发依赖项安装并配置它时——就像我通常做的那样——VS Code 似乎会选择它。
在这种情况下,VS Code 似乎没有认识到存在/配置了任何类型的 linter。
这并不奇怪,因为 ESLint 不是我刚刚生成的 React 项目的依赖项——至少不是根据 package.json。
当我尝试在项目的根目录中运行eslint . 时,它显示“找不到命令”。
我试图通过扩展这个 ESLint 配置来为它注入活力,所以现在我有了这个:
"eslintConfig": {
"extends": ["react-app", "eslint:recommended", "google"],
"rules": {
"semi": ["error", "always"],
"quotes": ["error", "double"]
}
},
这没有任何改变。 我以一种我知道它违反上述配置的方式操纵了源代码,但是,我没有收到任何不当行为的信号。
这引出了一个简单的问题:
create-react-app 生成的项目是否带有某种 ESLint 配置,如果有,如何正确启用和扩展它?
当我被提到 the number one Google hit that comes up when searching "create react app eslint" 时——我显然已经阅读过——让我澄清一下我的意思:
显然,ESLint 以不同于使用 like so 手动添加到项目中的方式集成到 Create React App 中。 这不仅体现在发布关于他们为让两者合作而努力的人数的绝对数量上。 这也很明显......
- ...无法在项目根目录中运行
eslint命令。 - ...ESLint 似乎不是
package.json中的依赖项。 - ...VS Code 没有发现 ESLint 存在。
- ...项目根目录下没有
.eslintrc.*文件。 - ...等
那么:我如何在 Create React App 的上下文中使用 ESLint?对于初学者:我如何运行它?我该如何扩展它?为什么 VS Code 不接受它——即使它通常会注意到 ESLint 的存在?
【问题讨论】:
-
这似乎是一个 vscode linter 配置问题。我会查看/使用包设置。我会自动在 Atom 中看到警告(使用我已经设置的正确配置的 linter 设置)。如果您想了解 CRA 在幕后做了什么,您可以运行
yarn eject。此外,eslint SOMETHING仅在您全局安装了 eslint 时才有效。试试yarn eslint src或npx eslint src。如果你对使用 CRA 自定义 ESLint 配置感兴趣,请查看我的博文:medium.com/hackernoon/a-simple-linter-setup-finally-d908877fa09
标签: javascript reactjs visual-studio-code create-react-app eslint