requirejs - remove - Excluyendo archivos/directorios de la tarea Gulp
nodejs write file (1)
Tengo una tarea gulp rjs que concatena y uglifica todos mis archivos .JS personalizados (cualquier biblioteca que no sea de proveedor).
Lo que estoy tratando de hacer es excluir algunos archivos / directorios de esta tarea (controladores y directivas).
Heres 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 ampliada:
Extraído de la documentación de Gulp:
gulp.src (globs [, opciones])
Emite archivos que coinciden con glob o una matriz de globs. Devuelve una secuencia de archivos de vinilo que se pueden canalizar a complementos.
glob se refiere a la sintaxis de nodo-glob o puede ser una ruta de archivo directa.
Por lo tanto, mirando a la documentación de node-glob podemos ver que utiliza la biblioteca de minimatch para hacer su coincidencia.
En la documentación de minimatch , señalan lo siguiente:
si el patrón comienza con un! personaje, entonces es negado.
Y es por eso que usa! El símbolo excluirá archivos / directorios de una tarea truculenta