0

重要提示:请参阅下面提供重要信息的更新编辑

使用 Angular 时,我在 WebStorm 2021.2.2(和其他最新版本)中不断出现此错误:

ESLint:无法启动语言服务进程

请看下面的截图

所有 .ts 文件都报告类似的错误:

ESLint:无法从语言服务中获取结果

我试图通过创建一个新的 Angular 项目来重现该问题,如下所示:

ng new video-and-event-listeners-test --style=scss --routing=true
cd video-and-event-listeners-test/
ng add @angular-eslint/schematics --skip-confirmation

最初一切正常,但随后错误返回,我无法摆脱它。我在每个项目中都有这个错误(我的项目都包含 HLS 文件 - 请参阅下面的编辑)。该ng lint命令只是挂起。当您运行代码检查时,WebStorm 就会失败。任何想法如何解决这个问题(不只是禁用 eslint)?没有 eslint 的工作就像没有铲子挖洞:(

相关软件的其他版本:

Node.js version 14.17.3
@angular/cli@12.2.6 (global install)
Angular 12.2.0
eslint 7.26.0 (installed by the above `ng add` command)

更新编辑:

好的,我终于有机会继续前进了!我有一个目录如下:

/src/assets/test-videos

此文件夹包含一堆 HLS 流媒体视频。HLS 视频块/片段具有 .ts 扩展名。.ts 扩展名是 HLS 块的标准扩展名,但它们似乎导致 ESLint 失败(因为 ESLint 正在检查 .ts 文件)。如果我删除整个文件夹,ESLint 就会开始工作!!!当我恢复文件夹时,ESLint 停止工作。

所以我试图通过在我的项目根目录中添加一个 .eslintignore 文件来忽略该文件夹,其中包含以下内容:

src/assets/test-videos/**/*
/src/assets/test-videos/**/*
./src/assets/test-videos/**/*

src/assets/test-videos/*
/src/assets/test-videos/*
./src/assets/test-videos/*

src/assets/test-videos/
/src/assets/test-videos/
./src/assets/test-videos/

src/assets/test-videos
/src/assets/test-videos
./src/assets/test-videos

test-videos/**/*

我还向 .eslintrc.json 添加了以下条目

{
  "root": true,
  "ignorePatterns": [
    "projects/**/*",
    "src/assets/test-videos/**/*"
  ],
  etc
}

但仍然没有雪茄。如果问题目录没有被删除,ESLint 将无法正常工作!我想我可以重命名所有 HLS 文件以使用非标准扩展名,但我宁愿不这样做。有任何想法吗?非常感谢

在此处输入图像描述

4

2 回答 2

2

看起来好像中的设置.eslintignore只影响错误报告,而中的设置tsconfig.json影响解析。添加"exclude": ["src/assets/test-videos"]到根目录tsconfig.json应该会有所帮助。

我已经验证了在终端中运行 eslint 时它的工作原理相同eslint src/**/*.*- 如果文件未排除在中tsconfig.json,则 ESLint 内存不足

于 2021-09-22T14:32:13.137 回答
0

@lena 整天帮我解决这个问题!非常感谢@lena

只是想添加最终解决方案。

.eslintrc.json我补充说:

"ignorePatterns": [
  "src/assets/test-videos/**/*"
]

tsconfig.json我补充说:

"exclude": [
  "src/assets/test-videos",
  "dist"
]

所有这些更改都是修复所必需的。删除它们中的任何一个都会导致 eslint 失败。

请注意, dist 文件夹是在构建后生成的,并且在我也将其排除之前也停止了 eslint 的工作。

一天失去了,但吸取了教训!

顺便说一句,虽然这影响了 WebStorm,但它也不是由 WebStorm 引起的,因为它ng lint也失败了。ng lintWebStorm 一开始工作,就开始工作。

于 2021-09-22T20:21:22.190 回答