#
Объяснение GlobsGlob - это строка буквенных символов и/или подстановочных знаков, используемых для сопоставления путей к файлам. Globbing - это поиск файлов в файловой системе с помощью одного или нескольких globs.
Метод src()
ожидает, что одна глобальная строка или массив глобов определят, с какими файлами будет работать ваш конвейер. Для ваших глобов должно быть найдено хотя бы одно совпадение, иначе src()
выдаст ошибку. Когда используется массив глобов, они сопоставляются в порядке массива, что особенно полезно для отрицательных глобов.
#
Сегменты и разделителиСегмент - это все, что находится между разделителями. Разделителем в глобе всегда является символ /
- независимо от операционной системы - даже в Windows, где разделителем пути является \\
. В glob, \\
зарезервирован как escape-символ.
Здесь *
экранирована, поэтому он рассматривается как литерал, а не подстановочный знак.
Избегайте использования методов Node path
, таких как path.join
, для создания globs. В Windows он создает недопустимый glob, потому что Node использует \\
в качестве разделителя. Также избегайте глобальных __dirname
, __filename
или process.cwd()
по тем же причинам.
#
Специальный символ: * (одиночная звездочка)Соответствует любому количеству (включая ни одного) символов в одном сегменте. Полезно для добавления файлов в один каталог.
Этот глоб будет соответствовать файлам типа index.js
, но не файлам вроде scripts/index.js
или scripts/nested/index.js
#
Специальный символ: ** (двойная звездочка)Соответствует любому количеству (включая ни одного) символов в сегментах. Полезно для подстановки файлов во вложенных каталогах. Убедитесь, что вы соответствующим образом ограничили ваши двойные звезды, чтобы избежать ненужного сопоставления больших каталогов.
Здесь глоб соответствующим образом ограничен каталогом scripts/
. Он будет соответствовать таким файлам, как scripts/index.js
, scripts/nested/index.js
и scripts/nested/twice/index.js
.
#
Специальный символ: ! (отрицание)Поскольку globs сопоставляются в порядке массива, отрицательный глоб должен следовать по крайней мере за одним неотрицательным глобом в массиве. Первый находит набор совпадений, затем отрицательный глоб удаляет часть этих результатов. При исключении всех файлов в каталоге вы должны добавить /**
после имени каталога, которое библиотека подстановки оптимизирует внутренне.
Если любые неотрицательные глобы следуют за отрицательным, ничего не будет удалено из более позднего набора совпадений.
Отрицательные глобы можно использовать в качестве альтернативы ограничению глоб с двумя звездами.
#
Перекрывающиеся глобыДва или более глоба, которые (не) намеренно соответствуют одному и тому же файлу, считаются перекрывающимися. Когда перекрывающиеся глобы используются в одном src()
, gulp делает все возможное, чтобы удалить дубликаты, но не пытается выполнять дедупликацию между отдельными вызовами src()
.
#
Дополнительные ресурсыЗдесь описывается большая часть того, что вам нужно для работы с глобами в gulp. Если вы хотите получить более подробную информацию, вот несколько ресурсов.