write remove nodejs node files eliminar delete borrar archivos archivo requirejs gulp minify uglifyjs

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