ESLint:无法启动语言服务进程/HLS .ts 扩展问题

ESLint: Cannot start language service process / problem with HLS .ts extension

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

当我使用 Angular:

时,WebStorm 2021.2.2(和其他最新版本)中不断出现此错误

ESLint: Cannot start language service process

见下方截图

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

ESLint: Can not get result from language service

我尝试通过创建一个新的 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 文件以使用非标准扩展名,但我不想这样做。有任何想法吗?非常感谢

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

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

@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 lint 开始工作后,WebStorm 也开始工作。