Excluir archivos / directorios de la tarea Gulp

Tengo una tarea gulp rjs que concatena y reutiliza todos mis archivos .JS personalizados (cualquier biblioteca que no sea de proveedores).

Lo que bash hacer es excluir algunos archivos / directorios de esta tarea (controladores y directivas).

Aquí está mi árbol:

- 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 

Aquí mi 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()); }); 

Respuesta rápida

En src, siempre puede especificar archivos para ignorar usando “!”.

Ejemplo (desea excluir todos los archivos * .min.js en su carpeta y subcarpeta js:

 gulp.src(['js/**/*.js', '!js/**/*.min.js']) 

Puedes hacerlo también para archivos individuales.

Respuesta expandida:

Extraído de la documentación de gulp:

gulp.src (globs [, opciones])

Emite archivos que coinciden con glob proporcionado o una serie de globs. Devuelve una secuencia de archivos de Vinilo que se pueden canalizar a los complementos.

glob se refiere a la syntax node-glob o puede ser una ruta de archivo directa.

Entonces, mirando a la documentación de nodo-glob , podemos ver que usa la biblioteca de minimatch para hacer su coincidencia.

En la documentación de minimatch , señalan lo siguiente:

si el patrón comienza con a! personaje, entonces es negado.

Y es por eso que usar! símbolo excluirá archivos / directorios de una tarea gulp