webentwicklung-frage-antwort-db.com.de

Ausschließen von Dateien / Verzeichnissen von der Gulp-Aufgabe

Ich habe eine gulp rjs-Task, die alle meine benutzerdefinierten .JS-Dateien (keine Bibliotheken von Drittanbietern) verkettet und unschädlich macht.

Was ich versuche zu tun, ist, einige Dateien/Verzeichnisse von dieser Aufgabe auszuschließen (Controller und Direktiven).

Hier ist mein Baum:

 - 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

hier meine 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

Schnelle Antwort

Auf src können Sie mit "!" Immer Dateien angeben, die ignoriert werden sollen.

Beispiel (Sie möchten alle * .min.js-Dateien in Ihrem js-Ordner und Unterordner ausschließen:

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

Sie können dies auch für einzelne Dateien tun.

Erweiterte Antwort:

Auszug aus der Schluckdokumentation:

gulp.src (globs [ options])

Gibt Dateien aus, die mit dem angegebenen Glob oder einer Reihe von Globs übereinstimmen. Gibt einen Stream von Vinyl-Dateien zurück, die an Plugins weitergeleitet werden können.

glob bezieht sich auf Knoten-Glob-Syntax oder kann ein direkter Dateipfad sein.

Wenn wir uns also Node-Glob-Dokumentation ansehen, können wir sehen, dass die Minimatch-Bibliothek für den Abgleich verwendet wird.

Am Minimatch-Dokumentation weisen sie auf Folgendes hin:

wenn das Muster mit einem! beginnt Zeichen, dann wird es negiert.

Und deshalb benutzen! Symbol schließt Dateien/Verzeichnisse von einer Schluckaufgabe aus

489
avcajaraville