VS Code 不排除 Code 的 node_modules 被监视 - 已达到文件监视限制

sla*_*den 6 inotify visual-studio-code vscode-settings

在 VS Code 中,我有一个少于 50 个文件的 Vue 项目,但在运行开发服务器 VS Code 时抛出Error: ENOSPC: System limit for number of file watchers reached.

我的VS Code Watcher Exclude 设置具有以下忽略模式。

**/.git/objects/**
**/.git/subtree-cache/**
**/node_modules/**
Run Code Online (Sandbox Code Playgroud)

我试图找出哪些文件可能使我超过了机器上的max_user_watches限制,即 8192。

通过用户“mosvy”的 StackExchange回答和另一个用户“oligofren”从该回答派生脚本,我发现以下来源可能导致这种情况。

| Watchers | Source                                                                                                                   |
| -------- | ------                                                                                                                   |
| 4033     | /usr/share/code/code --max-old-space-size=3072 /usr/share/code/resources/app/extensions/node_modules/typescript/lib/tsse |
| 3889     | /usr/share/code/code /usr/share/code/resources/app/extensions/node_modules/typescript/lib/typingsInstaller.js --globalTy |
| 99       | /usr/share/code/code /usr/share/code/resources/app/out/bootstrap-fork --type=watcherService                              |
Run Code Online (Sandbox Code Playgroud)

我不确定为什么要观看其中任何一个,但前两个似乎忽略了 VS Code 的 Watcher Exclude 设置 **/node_modules/**

如果可能,在 VS Code 的 Watcher Exclude 设置中排除所有这三个是否安全?

我不想破坏我的 VS Code 安装。

更新

上面的 Watcher Exclude 设置是 VS Code 列出的默认设置。我添加了相同的设置

"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/**": true
  }
Run Code Online (Sandbox Code Playgroud)

直接到 settings.json 文件,上面列出的两个 node_modules 源被删除,该会话的错误消失了。

重新启动 VS Code 并验证 settings.json 仍然包含我所做的更改后,不再排除之前的两个 node_modules 源。

mdm*_*ndo -3

如果可行,您可以禁用内置扩展:TypeScript 和 JavaScript 语言功能,但这会删除一些功能,这些功能可能会影响使用 vscode 的全部意义。

  • 或者完全卸载 VS Code 并出去 (3认同)
  • 这不是最糟糕的主意 (2认同)