ESLint在VS Code中不适用于我。我在VS Code中安装了插件,并且我的package.json中的ESLint本身也是开发人员依赖项,我也安装了它。
我在VS代码用户设置中修改了以下选项:
{
"eslint.options": { "configFile": "C:/mypath" }
}
我使用命令eslint --init
将基本.eslintrc.json
添加到我的包的主目录中。
其他人可以使用与完全相同的ESLint配置文件完全相同的包来从VS Code获取ESLint反馈。
直接破坏默认情况下.eslintrc.json
文件中推荐的规则集中包含的多个规则时,我没有收到任何反馈。
我错过了什么?
编辑:我已经通过命令行使用ESLint进行了测试,一切都按预期工作,发现错误应该在哪里,但是,这些相同的错误从未出现在VS Code中。这个问题似乎是在VS Code方面,而不是ESLint。
答案 0 :(得分:29)
配置工作目录为我解决了这个问题,因为我在同一个窗口中有多个带有自己的.eslintrc
文件openend的项目。
将其放入您的.vscode/settings.json
"eslint.workingDirectories": [
"./backend",
"./frontend"
],
感谢github上的这个人:https://github.com/microsoft/vscode-eslint/issues/696#issuecomment-542592372
PS:有用的命令,用于列出除/ node_modules以外的所有包含.eslintrc
的子目录:
find . .eslintrc | grep .eslintrc | grep -v node_modules
答案 1 :(得分:26)
如果ESLint在终端上运行但不在VSCode内运行,则扩展可能无法从本地和全局节点模块文件夹中检测ESLint库。
要验证,请在项目中打开JS文件后,在VSCode上按CTRL + SHIFT + U转到“输出”面板。如果显示"无法为文档{{documentName}}。js"加载ESLint库,则在尝试检测路径时遇到问题。
如果是,则通过配置" eslint.nodePath"手动设置它。在设置中。给它完整的路径;目前不支持使用环境变量。此选项已记录在ESLint extension page。
答案 2 :(得分:26)
有点“奇怪”的用户体验(很难注意到) - 无论如何 - 从 V 2.1.10 开始 -
您必须在新安装/首次安装时更改“当前阻止”状态栏 。
2.1.10
更新日志 (08/10/2020)当 ESLint 扩展尝试加载一个 第一次使用 ESLint 库,需要批准。 相反,ESLint 状态栏项目更改为 ESLint 状态图标 表示执行当前被阻塞。
打开这个弹出窗口:
批准 ==> Allows Everywhere
-或- 通过命令:
ctrl + Shift + p -- ESLint: Manage Library Execution
在“版本说明”下阅读更多信息:
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
打开终端Ctrl+`
在输出 ESLint
下拉菜单下,您可以找到有用 调试数据(错误、警告、信息)。
Error: ENOENT: no such file or directory, realpath
最后,自 v 2.0.4 - eslint.validate
在“正常情况下”(react、vue、typescript、js、html、md)不再需要(旧遗留设置)**
**许多过时的 stackoverflow 答案(甚至是她)都表明应该编辑 eslint.probe
文件。
eslint.probe
= 语言标识符数组
ESLint 扩展应该被激活并且应该尝试验证
文件。如果对探测语言的验证失败,则扩展说
沉默的。 默认为 [javascript
, javascriptreact
, typescript
,
typescriptreact
、html
、vue
、markdown
]。
答案 3 :(得分:5)
ESLint可能没有给您反馈的原因有几个。 ESLint将首先在您的项目中查找您的配置文件,如果它找不到.eslintrc.json那么它将寻找全局配置。就个人而言,我只在每个项目中安装ESLint,并根据每个项目创建配置。
您未获得反馈的第二个原因是,您需要获得反馈,以便在.eslintrc.json中定义您的linting规则。如果那里没有规则,或者您没有安装插件,那么您必须定义它们。
答案 4 :(得分:4)
就我而言,由于我将TypeScript与React一起使用,因此解决方法只是告诉ESLint也要验证这些文件。这需要进入您的用户设置:
"eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ],
答案 5 :(得分:2)
我在Windows上遇到了类似的问题,但是有时eslint有时无法工作(在vscode中)。后来我意识到一段时间后它可以正常工作。与以下问题有关:eslint server takes ~3-5 minutes until available
设置环境变量NO_UPDATE_NOTIFIER=1
解决了该问题
答案 6 :(得分:2)
在我的情况下,设置eslint验证为: “ eslint.validate”:[“ javascript”,“ javascriptreact”,“ html”,“ typescriptreact”], 完成了工作。
答案 7 :(得分:2)
由于您能够通过命令行成功完成加载,因此该问题很可能是ESLint 插件的配置。
假设扩展程序已正确安装,请在项目(工作区)和用户(全局)定义的settings.json中检出所有与ESLint相关的配置属性。
在您的特定情况下,有些事情可能会配置错误;对我来说,在另一个项目中使用TypeScript后,JavaScript被禁用,而我的 global settings.json最终显示如下:
"eslint.validate": [
{ "language": "typescript", "autoFix": true }
]
这是一个简单的解决方法:
"eslint.validate": [
{ "language": "javascript", "autoFix": true },
{ "language": "typescript", "autoFix": true }
]
这太普遍了,以至于有人写了一篇关于ESLint not working in VS Code的简单博客文章。我只是添加,请先检查您的全局用户settings.json,然后再覆盖本地工作区配置。
答案 8 :(得分:2)
我将Use Prettier Formatter和ESLint VS Code扩展一起使用,以进行代码分析和格式化。
现在使用给定的命令安装一些软件包,如果需要更多软件包,这些软件包将在您的终端中以安装命令的形式显示为错误,请也安装它们。
sample_rate
现在在项目主目录中创建一个新文件名 .prettierrc ,使用该文件,您可以配置漂亮扩展的设置,我的设置如下:
npm i eslint prettier eslint@^5.16.0 eslint-config-prettier eslint-plugin-prettier eslint-config-airbnb eslint-plugin-node eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks@^2.5.0 --save-dev
关于ESlint,您可以根据自己的要求进行配置,我建议您访问Eslint网站,查看规则(https://eslint.org/docs/rules/)
现在在项目主目录中创建文件名 .eslintrc.json ,使用该文件可以配置eslint,我的配置如下:
{
"singleQuote": true
}
答案 9 :(得分:1)
我在eslint上遇到了类似的问题,说这是“ ..尚未验证任何文件”,但是在VS Code问题控制台中没有任何报告。但是,在将VS Code升级到最新版本(1.32.1)并重新启动后,eslint开始工作。
答案 10 :(得分:1)
如果您使用的是ESLint的全局安装,则还必须全局安装配置中使用的所有插件。就像本地安装一样明智。 如果您已在本地安装并在本地正确配置,但eslint不起作用,请尝试重新启动IDE。 这与VScode发生在我身上。
答案 11 :(得分:1)
如果您正在使用eslint作为package.json依赖项来开发项目,请确保您运行npm install
。这为我解决了。
答案 12 :(得分:1)
对我来说,当显示某些提示时,我确实不小心禁用了ESLint。
按照以下步骤为我修复它
Shift + Command + P
并选择ESLint: Disabled ESLint
Shift + Command + P
并选择ESLint: Show Output Channel
答案 13 :(得分:0)
安装 Eslint npm 包和/或 Dirk baeumer 的 VS Code 扩展后,根据您的编码约定创建 .eslintrc.js 配置文件。
然后,在 VSCode 设置中启用所有 ESLint 配置,如下所示:
Linting 快乐?
答案 14 :(得分:0)
我遇到了同样的 eslint 无法工作的问题。在 .eslintrc.json 文件中添加这些扩展名时,对我来说效果很好:
"extends": [
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates",
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
答案 15 :(得分:0)
如果您使用的是 Yarn 版本 2,它可能是罪魁祸首。对我来说,一旦我运行 yarn set version classic
和 yarn install
,一切又开始工作了。
答案 16 :(得分:0)
Windows 用户在此。
尝试了一切,没有任何效果。最后把.vscode/extensions里的eslint文件夹去掉,重新安装fixed!
<块引用>C:\Users
答案 17 :(得分:0)
您可以打开 problem
选项卡来检查是否存在 ESLint 权限请求。如果您看到它,请尝试单击灯泡并解决问题,它对我有用。
problem tab in vscode terminal window
祝你好运!
答案 18 :(得分:0)
就我而言,我在foo bin_op
文件夹中有一个.eslintrc.json
文件。将其移到根文件夹后,ESLint开始正常工作。
答案 19 :(得分:0)
转到您的settings.json文件,添加以下内容,然后修复eslint.nodepath。根据自己的喜好量身定制。
// PERSONAL
"editor.codeActionsOnSaveTimeout": 2000,
"editor.codeActionsOnSave": {
"source.fixAll": true
},
"editor.fontSize": 16,
"editor.formatOnSave": true,
"explorer.confirmDragAndDrop": true,
"editor.tabSize": 2,
"eslint.codeAction.showDocumentation": {
"enable": true
},
"eslint.nodePath": "C:\\{path}",
"eslint.workingDirectories": ["./backend", "./frontend"],
答案 20 :(得分:0)
重新启动VSCode对我有用。
答案 21 :(得分:0)
在我的情况下, ESLint 在我的工作空间中被禁用。我必须启用它
答案 22 :(得分:0)
就我而言,我没有在VSCode中安装他的ESLint扩展,这导致了问题。做到了,它又开始工作了。
答案 23 :(得分:0)
就我而言,它没有用,因为即使我配置了package.json
和扩展名,我也只向项目添加了一个monorepo文件夹。仅在将整个项目(其中包含package.json
文件)添加到VS Code时,我才能工作。
答案 24 :(得分:0)
我给出的答复是假设您已经在本地项目根目录中使用 .eslintrc 和 .eslintignore 定义了规则。 安装VSCode Eslint Extension之后,需要在settings.json中为vscode进行一些配置
pinctrl_pm_select_idle_state
eslint.enable: true
将eslint local安装为项目依赖项是此工作的最后一个要素。考虑不要以全局方式安装eslint,这可能与您本地安装的软件包冲突。
答案 25 :(得分:-1)
我遇到了同样的问题。启用了 ESLint 扩展并且 .eslintrc 文件有一些规则,但 VS Code 没有为我的代码显示任何自动修复。
问题出在我的文件夹结构上,就像那样
-workspace-folder
-client
-node_modules
-src
-.eslintrc.json
-package.json
-...other files
将文件夹结构改成下例后,删除package-lock.json并重新安装所有deps后,VS code开始显示es lint错误。
-workspace-folder
-node_modules
-src
-.eslintrc.json
-package.json
-...other files