У меня есть задание gulp rjs, которое объединяет и расширяет все мои пользовательские файлы .JS (любые библиотеки сторонних производителей).
То, что я пытаюсь сделать, это исключить некоторые файлы / каталоги из этой задачи (контроллеры и директивы).
Вот мое дерево:
- application
- resources
- js
main.js
- vendor
- jquery
- modernzr
- angular
- controllers
- controller1
- controller2
- controller3
- directives
- directives1
- directives2
- directives3
- widgets
- widget1
- widget2
- widget3
- widget4
- modules
- modules1
- modules2
- modules3
- modules4
Вот мой gulp.js
dir = {
app: 'application',
dest: 'dest',
};
config = {
src: {
js: dir.app + '/resources/js'
},
dest: {
js: dir.dest + '/resources/js'
}
};
gulp.task('rjs', function() {
rjs({
baseUrl: config.src.js,
out: 'main.js',
name: 'main',
mainConfigFile: config.src.js + '/main.js',
exclude: [ 'jquery', 'angular']
})
.pipe(prod ? uglify({ mangle: false, outSourceMap: true, compress: { drop_console: true } }) : gutil.noop())
.pipe(gulp.dest(config.dest.js))
.pipe(filesize())
.pipe(dev ? connect.reload() : gutil.noop());
});
gulp.src(['./*.js', '!./node_modules/**'])
сначала шаблон exclude ( ), затемОтветы:
Быстрый ответ
На src вы всегда можете указать файлы, которые нужно игнорировать, используя "!".
Пример (вы хотите исключить все файлы * .min.js в вашей папке и подпапке js:
Вы можете сделать это также для отдельных файлов.
Расширенный ответ:
Извлечено из документации глотка:
glob относится к синтаксису node-glob или может быть прямым путем к файлу.
Итак, просматривая документацию по glob-узлам, мы видим, что она использует библиотеку minimatch для сопоставления.
На документации minimatch они указывают следующее:
И именно поэтому с помощью! символ исключит файлы / каталоги из задачи gulp
источник
Negation The intent for negation would be for a pattern starting with ! to match everything that doesn't match the supplied pattern. However, the implementation is weird, and for the time being, this should be avoided. The behavior is deprecated in version 5, and will be removed entirely in version 6.
gulp.src([/*file globs*/], {base:"."})
для того, чтобы шаблоны шара работали правильно.Gulp использует micromatch под капотом для сопоставления глобусов, поэтому, если вы хотите исключить какой-либо из файлов .min.js, вы можете добиться того же, используя расширенную функцию глобирования, например:
В основном, это говорит о том, что нужно взять все на любом уровне внутри js , который не заканчивается на * .min.js
источник