В чем разница между watchOptions.ignored и webpack.WatchIgnorePlugin
При использовании webpack с часами, например при использовании webpack-dev-server
кажется (по крайней мере) два разных способа исключения файлов из просмотра. Я не могу найти документацию о разнице между этими двумя конфигурациями и почему они разные. Кто-нибудь знает почему? Один метод предпочтителен? Должен ли я открыть вопрос и/или запрос на извлечение для улучшения документации?
Случай, с которым я недавно столкнулся, когда часы запускались несколько раз при первом запуске, был исправлен добавлением watchIgnorePlugin
и не исправлен watchOptions.ignored
webpack.WatchIgnorePlugin
Игнорируйте указанные файлы, т.е. те, которые соответствуют указанным путям или регулярным выражениям, в режиме просмотра.
new webpack.WatchIgnorePlugin(paths)
Опции
- paths (массив): список RegExps или абсолютных путей к каталогам или файлам, которые следует игнорировать.
https://webpack.js.org/plugins/watch-ignore-plugin/
watchOptions.ignored
Для некоторых систем просмотр многих файловых систем может привести к большой загрузке ЦП или памяти. Можно исключить огромную папку, такую как node_modules
:
ignored: /node_modules/
Также можно использовать любые шаблоны соответствия:
ignored: "files/**/*.js"
https://webpack.js.org/configuration/watch/
Ответы
Ответ 1
WatchIgnorePlugin
-plugin поддерживает список RegExps или абсолютных путей к каталогам или файлам, которые следует игнорировать.
watchOptions.ignored
-option поддерживает anymatch -patterns, который включает в себя регулярное выражение, глобус, строку или функцию, которая принимает строку в качестве аргумента и возвращает значение true или false.
Если вы работали в Windows, это могло быть причиной того, что watchOptions.ignored
не работал для вас:
Примечание: этот модуль имеет четность Bash, имейте в виду, что обратные слеши в стиле Windows не поддерживаются в качестве разделителей. См. Https://github.com/micromatch/micromatch#backslashes для получения дополнительной информации.