VSC не может следить за изменениями файлов в этой большой рабочей области странно

Я только начал использовать VSCode версии 1.24.1.

После загрузки папки отображается предупреждение

Visual Studio Code не может отслеживать изменения файлов в этом большом рабочем пространстве

После того, как я проверил лимит, как указано в их руководстве, используя

cat /proc/sys/fs/inotify/max_user_watches

Я получаю 8192, в то время как мой проект имеет только 650 файлов (из которых 400 внутри .git)

Почему это происходит? Это ошибка или я что-то упустил?

(Увеличение лимита - явно не правильное решение.)

Ответ 1

Решение, которое я нашел, и оно работает для меня, это

добавить эту строку fs.inotify.max_user_watches=524288 в /etc/sysctl.conf

и затем выполните команду sudo sysctl -p

а затем перейдите в настройки vscode и найдите файл с именем settings.json

.и эта строка к нему

"files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true
  }

вы также можете сослаться на эту ссылку https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc

Ответ 2

что Linux ppl не знаю, есть новые для Linux люди, как я. Так что, если вы нуб, это для вас.

  1. cat /proc/sys/fs/inotify/max_user_watches (может быть числом 8k+)
  2. sudo vim /etc/sysctl.conf
  3. пройти весь путь вниз и добавить новую строку с fs.inotify.max_user_watches=524288 (убедитесь, что у вас НЕ есть # перед командой)

  4. введите :wq! и введите

  5. введите sudo sysctl -p
  6. введите еще раз: cat /proc/sys/fs/inotify/max_user_watches (должно быть 500k+ сейчас)
  7. отблагодаришь позже.

Ответ 3

В моем случае (PHP с использованием Composer) я должен был исключить путь vendor из наблюдения

enter image description here

В зависимости от вашего случая, вы должны исключить вашу папку зависимостей.

Ответ 4

TL; DR;

Похоже на утечку памяти.

-----

Кажется, предупреждение уже исчезло.

К сожалению, я не могу воспроизвести ошибку прямо сейчас, но вот несколько шагов.

  • Установленное расширение Php Intellisense
  • С терминала linux git init
  • Добавлена папка в рабочее пространство
  • Сделал некоторые работы, добавил, сохранил, зафиксировал и нажал из палитры команд
  • закрытый VSC
  • Открыто предупреждение VSC ->.

В этот момент я увидел в htop что существовал процесс /usr/share/code с длинными аргументами, которые включали что-то с TypeScript которое использовало 100% 1 процессора и около 1 ГБ ОЗУ. затем

  • закрывает VSC
  • убитый процесс
  • открытый VSC

Теперь предупреждение больше не отображается, а ЦП обычно используется.

Ответ 5

Вот решение: https://code.visualstudio.com/docs/setup/linux

Предел можно увеличить до максимума, отредактировав /etc/sysctl.conf и добавив эту строку в конец файла: fs.inotify.max_user_watches=524288

Новое значение затем можно загрузить, запустив sudo sysctl -p

Ответ 6

В моем случае у меня недостаточно прав для изменения sysctl.conf, поэтому мое решение для Ubuntu 18.04 LTS было:

sudo /bin/su -c "echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf"
sudo sysctl -p

Ответ 7

Что помогло мне, так это создание отдельного рабочего пространства для проекта, над которым я работал. Так что, если я работаю над чем-то в /htdocs/project/, то вместо того, чтобы просто открыть эту папку, я создаю ее как рабочее пространство.