Шаблон glob узла включает все js кроме определенных папок
У меня есть проект, который выглядит так
ls foo/
- file0.js
- a/file1.js
- b/file2.js
- c/file3.js
- d/file4.js
Как мне написать шаблон glob, чтобы исключить папку c & d, но получить все другие файлы javascript? Я искал здесь пример, но ничего не могу заставить работать.
Я думаю, что решение будет выглядеть примерно так:
glob('+(**/*.js|!(c|d))', function(err, file) {
return console.log(f);
});
Я хочу обратно
- file0.js
- a/file1.js
- b/file2.js
1 ответ
Есть опция игнорирования, которую я застеклил в файле readme:
glob('**/*.js', { ignore: '{c,d}/**' }, cb)
Это исключит обе папки c + d из совпадения. Больше здесь
Для среды, где нет второго параметра для установки исключения, мы можем добиться такого исключения, используя шаблон, показанный в примере ниже:
Шаблон
/src/**/!(els)/*.scss
состав
/src/style/kit.scss
/src/style/els/some.scss
/src/style/els/two.scss
результат
он выберет только /src/style/kit.scss
Мы можем использовать http://www.globtester.com/ для быстрого тестирования онлайн.
Обновить
Если мы работаем с Gulp Task Runner. Или некоторые другие инструменты или классы, которые предлагают второй или несколько параметров для исключения. Или просто несколько глобальных селекторов, которые тоже поддерживают исключение. Тогда мы можем сделать в качестве примера ниже для глотка шоу:
для глотка
Мы передаем массив вместо простой строки (несколько селекторов globs, один применяется за другим, чтобы добавить больше файлов или исключить)
src(['src/style/**/*.{scss,sass}', '!(src/style/els/**)'])
Мы можем иметь несколько исключений
watch(['src/style/**/*.{scss,sass}', '!(src/style/els/**)', '!(src/style/_somefileToExclude.scss)'])
В gulp вы можете использовать это с любым методом, который поддерживает массив как селекторы globs. src
а также watch
это то, что я использовал это для.
Примечание. Если вы хотите исключить папку и все ее подпапки, мы используем **
как указано выше, а не **/*
который не будет работать. Если вам нужны определенные типы файлов (расширение), вы можете использовать **/*.scss
например.