Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code VSC无法监视此大型工作区中的文件更改_Visual Studio Code - Fatal编程技术网

Visual studio code VSC无法监视此大型工作区中的文件更改

Visual studio code VSC无法监视此大型工作区中的文件更改,visual-studio-code,Visual Studio Code,我刚开始使用VSCode版本1.24.1 加载文件夹后,将显示警告 Visual Studio代码无法监视此大型工作区中的文件更改 在我按照他们的建议检查限制后,使用 我得到8192个文件,而我的项目只有650个文件(其中400个在.git中) 为什么会发生这种情况?这是一个错误还是我遗漏了什么 (增加限制显然不是正确的解决方案。)TL;博士 看起来像个虫子 ----- 看来警告已经过去了 不幸的是,我现在无法重现这个错误,但这里有一些步骤 已安装的Php Intellisense扩展 从li

我刚开始使用VSCode版本1.24.1

加载文件夹后,将显示警告

Visual Studio代码无法监视此大型工作区中的文件更改

在我按照他们的建议检查限制后,使用

我得到8192个文件,而我的项目只有650个文件(其中400个在.git中)

为什么会发生这种情况?这是一个错误还是我遗漏了什么

(增加限制显然不是正确的解决方案。)

TL;博士 看起来像个虫子

----- 看来警告已经过去了

不幸的是,我现在无法重现这个错误,但这里有一些步骤

  • 已安装的Php Intellisense扩展
  • 从linux终端did
    git init
  • 已将文件夹添加到工作区中
  • 做了一些工作,从命令调色板添加、保存、提交和推送
  • 闭合VSC
  • 打开VSC->显示警告
此时,我在
htop
中看到有一个进程
/usr/share/code
带有长参数,其中包括
TypeScript
的一些东西,它使用了100%的1个CPU和大约1G的RAM。然后

  • 关闭VSC
  • 镇静过程
  • 开放式VSC

现在警告不再显示,CPU也在正常使用。

我找到的解决方案和它对我的作用是

将这一行添加到
/etc/sysctl.conf

然后运行命令
sudosysctl-p

然后转到vscode设置,找到名为
settings.json的文件

这句话是怎么说的

"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true
  }
您也可以参考此链接,这里是解决方案:

通过编辑
/etc/sysctl.conf
并将此行添加到文件末尾,可以将限制增加到最大值:
fs.inotify.max_user_watches=524288


然后可以通过运行
sudo sysctl-p

加载新值。在我的情况下,我没有足够的权限更改
sysctl.conf
,因此我的Ubuntu 18.04 LTS解决方案是:

sudo /bin/su -c "echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf"
sudo sysctl -p
在我的例子中(PHP使用Composer),我必须将
vendor
path排除在监视之外


根据您的情况,您应该排除dependencies文件夹。

linux ppl不知道的是,有些ppl像我一样是linux的新手。所以如果你是个笨蛋,这是给你的

  • 打开一个新的
    终端
  • cat/proc/sys/fs/inotify/max\u user\u手表
    (可能是一个数字8k+)
  • 现在
    (a)
    用于
    vim
    -编辑器

  • (a)
    sudo-vim/etc/sysctl.conf
  • (a) 一直向下添加一个新行:
    fs.inotify.max\u user\u watches=524288
    (确保在命令前面没有
  • (a) 键入
    :wq并按enter键
  • (b)
    用于
    nano
    -编辑器(感谢@bradrar)

  • (b)
    sudo nano/etc/sysctl.conf

  • (b) 一直向下添加一个新行:
    fs.inotify.max\u user\u watches=524288
    (确保在命令前面没有

  • (b) 键入ctrl+x,键入y,然后按enter键

  • 类型
    sudo sysctl-p
  • 再次键入:
    cat/proc/sys/fs/inotify/max\u user\u watchs
    (现在应为500k以上)
  • (稍后谢谢我。)

  • 帮助我的是为我正在进行的项目创建一个单独的工作区。因此,如果我在/htdocs/project/中处理某个内容,那么我将创建一个工作区,而不是仅仅打开该文件夹。

    以下设置对我有效(在
    .vscode/settings.json中),您也可以将它们放在vscode中的用户级/系统级设置,而不是工作区级设置)

    默认情况下,
    .git、node_模块
    可能被排除在外,但根据您的工作空间,您可能需要添加其他模块。例如,我的文件系统中有一个指向更高级别目录的软链接(该目录递归地有上千个文件)。类似地,
    .cache loader
    通常有数千个文件

    可能有用的注意事项:我花了一些时间才意识到
    文件.exclude
    文件.watcherExclude
    是两种不同的设置


    一些理论观点:这里的大多数答案(甚至在官方vscode文档中)都建议将系统观察者限制增加到一个非常大的数字。这在大多数情况下都能正常工作,但是,这就像用锤子代替螺丝刀一样(这是一种蛮力,可能并不总是有效,而且效率不高)。虽然绝对系统限制可以(也许应该)从默认限制提高,但优化您的工作空间并避免使用不必要的系统资源是有益的。

    您的手表用完并不意味着它的
    VSCode

    VSCode
    在从监视中排除目录(在linux上)时肯定存在问题

    但是,由于您自己计算了文件,因此本例中的错误消息可能具有误导性,一些其他应用程序已经耗尽了手表


    如果您使用的是JavaScript开发,要跟踪有罪的应用程序,您可以使用,有一个解决方法:

    只需禁用此内置扩展:TypeScript和JavaScript语言功能


    如果您正在编写Javascript,那么这可能会解决这个问题:

    您必须访问侧栏扩展菜单:Ctrl+Shift+X。
    然后键入:
    @builtin types
    禁用扩展名:
    TypeScript和JavaScript语言功能

    ,如中所述,多根工作区的问题仍然存在

    最初的问题是,当VSN代码运行时,npm安装需要两倍的时间来安装依赖项
    sudo /bin/su -c "echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf"
    sudo sysctl -p
    
    "files.watcherExclude": {
            "**/.git": true,
            "**/.DS_Store": true,
            "**/node_modules": true,
            "**/some-soft-link-to-higher-level-directory-in-my-file-system" : true,
            "**/.cache-loader" : true
    }