web-dev-qa-db-fra.com

Exclusion de fichiers / répertoires de la tâche Gulp

J'ai une tâche gulp rjs qui concatène et supprime tous mes fichiers .JS personnalisés (toutes les bibliothèques autres que celles du fournisseur).

Ce que j'essaie de faire, c'est d'exclure certains fichiers/répertoires de cette tâche (contrôleurs et directives).

Voici mon arbre:

 - 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

ici mon 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());

});
214
Oam Psy

Réponse rapide

Sur src, vous pouvez toujours spécifier les fichiers à ignorer en utilisant "!".

Exemple (vous souhaitez exclure tous les fichiers * .min.js de votre dossier et sous-dossier js:

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

Vous pouvez également le faire pour des fichiers individuels.

Réponse développée:

Extrait de la documentation gulp:

gulp.src (globs [ options])

Emet les fichiers correspondant à glob fourni ou à un tableau de globs. Renvoie un flux de fichiers vinyle pouvant être transmis aux plug-ins.

glob fait référence à la syntaxe node-glob ou peut être un chemin de fichier direct.

Donc, en regardant documentation node-glob , nous pouvons voir qu'il utilise la bibliothèque minimatch pour faire sa correspondance.

Sur documentation minimatch , ils soulignent les points suivants:

si le motif commence par un! caractère, alors il est nié.

Et c'est pourquoi utiliser! Le symbole exclura les fichiers/répertoires d'une tâche gulp

489
avcajaraville