Ответ 1
Попробуйте изменить параметры gulp.watch
. Это было намного лучше для меня:
gulp.watch('./**/*', {interval: 1000, mode: 'poll'}, ['build']);
Итак, у меня есть настройка, возможно, как и большинство людей, где их код приложения монтируется в контейнер Docker через отдельный том.
Проблема заключается в том, что если я запустил gulp и специально gulp -watch, чтобы следить за изменениями файлов и т.д. в докере, в коде приложения, установленном в контейнере докера, для правильной сборки и перезапуска node в контейнере докера, по мере необходимости, он, как представляется, получает интенсивность процессора (как при опросе изменений файлов, а не при прослушивании событий изменения файла) до точки, где моя машина прячется.
Я думаю, что это связано с ограничением наличия файловой системы, смонтированной с собственного хоста, в контейнере докеров, но как люди работают вокруг этого? Выполняют ли они всю свою работу в контейнере? Собственный хозяин затем постоянно строит? Или мне не хватает чего-то, где моя установка неверна с помощью gulp -watch/nodemon?
Попробуйте изменить параметры gulp.watch
. Это было намного лучше для меня:
gulp.watch('./**/*', {interval: 1000, mode: 'poll'}, ['build']);
Для тех, кто использует gulp4
Единственный способ заставить это работать - использовать "usePolling", как показано ниже
gulp.watch('./**/*', {interval: 1000, usePolling: true}, gulp.series('superTask'));
Вы должны использовать плагин 'gulp -watch' вместо gulp.watch. Последний использует опрос статистики, который слишком тяжел для общей файловой системы. 'gulp -watch' использует inotify события для просмотра файловой системы в OSX.
Ответ Джесси не помог мне, но это было действительно близко. Теперь этот параметр выглядит следующим образом:
gulp.watch('./**/*', {interval: 1000, usePoll: true}, ['build']);
Поле mode
было отключено для флага поля usePoll
.
Подробнее см. раздел API.
Предыдущий ответ usePoll: true не работал. Этот сделал:
gulp.watch('./**/*', {interval: 1000, usePolling: true}, ['build']);