gulp globbing - як дивитися все, що знаходиться нижче каталогу


108

Це досить тупе запитання, але мені не вдалося знайти задовільної відповіді: Як я використовую глобул глобул, щоб вибрати всі файли у всіх підкаталогах нижче певного каталогу?

Я спробував:

'./src/less' './src/less/' './src/less/*'

Жоден з них, здається, не працює.

Відповіді:


178

Шаблон для всіх файлів у всіх каталогах зазвичай ./src/less/**/*.*або ./src/less/**/*, або повинен працювати.

Взагалі кажучи, краще співставити конкретні розширення файлів - навіть якщо всі вони повинні бути однаковими - щоб запобігти захопленню системних файлів чи інших непотрібних. У цьому випадку ви можете зробити ./src/less/**/*.lessлише .lessфайли, або щось на зразок і .src/less/**/*.{less,css}для файлів, .lessі для .cssфайлів.

Веб-сайт Grunt має досить хороший довідник для більшості мініатюрних кульок. (І Grunt, і gulp використовують minimalatch , оскільки це глобальна бібліотека для майже всього, що стосується Node.)

Було б непогано, щоб gulp або minimalatch мали власні повноцінні документи, але це відкрите джерело для вас.


Я перевірю веб-сайт Grunt, дякую. Точка щодо системних файлів безумовно має сенс. Причина, за якою я хочу, щоб вона була трохи легшою, - це те, що я використовую її для перегляду.
Єхан

1
Якщо ви ще цього не зробили, я настійно рекомендую вивчити та використовувати gulp-watchмодуль для перегляду файлів, оскільки він також може переглядати нові файли. Налаштування трохи більше, але варто того, IMO.
OverZealous

8
Для подальшого використання я використовую інструмент на globtester.com , він використовує minimatch, який gulp використовує за допомогою node-glob. "glob посилається на синтаксис node-glob або це може бути прямий шлях до файлу." (Джерело: github.com/gulpjs/gulp/blob/master/docs/API.md ) "[вузол-Глоб] використовує бібліотеку minimatch , щоб зробити його узгодження." (Джерело: github.com/isaacs/node-glob )
Даніель Дропік

1

'./src/less/**'здається, працює. І все-таки, якщо у когось є більш чіткий список усіх команд, що складаються, я би радий прийняти вашу відповідь і додати її до документів gulp. Зараз вам потрібно перейти до документів для одного з підмодулів gulp, який надає вам список манджей. Було б добре мати пряме посилання, особливо для дизайнерів, які використовують gulp.


1
gulp.watch('./build/**', ...)Здається, що (неправильно?) спрацьовує для деяких змін у батьківському каталозі (наприклад, ./.git/). Додавання додаткової / * на кінці , здається, уникнути цієї проблеми: gulp.watch('./build/**/*', ...).
medmunds

@medmunds Я знайшов подібні результати. Глобус повинен закінчуватися символом * або конкретним *. *. * не працюватиме, оскільки нічого не пропустить без розширення. Здається, взяв . та збігаються з використанням відповідності стилю POSIX; тобто якщо у файлі немає періоду, він не збігається. Можливо, там має бути особливий випадок . як . через DIR на Windows відповідає "LICENSE", але, на жаль, ln *.*не робить. Два різних значення до ' . 'сумно. *здається, робимо те, що нам потрібно. . Глобус - це, мабуть, ніколи не те, що розробник дійсно задумав, на мою думку, і може знадобитися попередження.
Ендрю Т Фіннелл

@filthy_wizard - **рекурсивний.
Стівен Вентімілья
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.