Excluir archivos / directorios de la tarea Gulp


Tengo una tarea gulp rjs que concatena y uglifica toda mi costumbre .Archivos JS (cualquier biblioteca que no sea proveedor).

Lo que estoy tratando de 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

Toma mi trago.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());

});
Author: Anshul, 2014-04-30

1 answers

Respuesta Rápida

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

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

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

También puede hacerlo para archivos individuales.

Respuesta Ampliada:

Extraído de la documentación de gulp:

Gulp.src (globs[, options])

Emite archivos que coinciden con glob proporcionado o una matriz de globs. Devuelve una corriente de vinilo archivos que se pueden canalizar a plugins.

Glob se refiere a sintaxis node-glob o puede ser una ruta de archivo directa.

Por lo tanto, mirando a node-glob documentation podemos ver que utiliza la biblioteca minimatch para hacer su coincidencia.

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

Si el patrón comienza con a ! carácter, entonces se niega.

Y es por eso que usando ! symbol excluirá los archivos / directorios de una tarea gulp

 453
Author: avcajaraville,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-22 21:18:04