Ich habe eine gulp rjs-Aufgabe, die alle meine benutzerdefinierten JS-Dateien (alle Bibliotheken anderer Hersteller) verkettet und hässlich macht.
Ich versuche, 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());
});
gulp.src(['./*.js', '!./node_modules/**'])
) vor, dann gulp-ignoreAntworten:
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:
Sie können dies auch für einzelne Dateien tun.
Erweiterte Antwort:
Auszug aus der Schluckdokumentation:
glob bezieht sich auf die Node-Glob-Syntax oder kann ein direkter Dateipfad sein.
Also, auf der Suche nach Knoten-glob Dokumentation können wir sehen , dass es die minimatch Bibliothek verwendet sein Matching zu tun.
In der Minimatch-Dokumentation wird auf Folgendes hingewiesen:
Und deshalb mit! Das Symbol schließt Dateien / Verzeichnisse von einer Schluckaufgabe aus
quelle
Negation The intent for negation would be for a pattern starting with ! to match everything that doesn't match the supplied pattern. However, the implementation is weird, and for the time being, this should be avoided. The behavior is deprecated in version 5, and will be removed entirely in version 6.
gulp.src([/*file globs*/], {base:"."})
um die Glob-Muster richtig funktionieren zu lassen.Gulp verwendet Micromatch unter der Haube zum Abgleichen von Globs. Wenn Sie also eine der .min.js-Dateien ausschließen möchten, können Sie dasselbe erreichen, indem Sie eine erweiterte Globbing- Funktion wie die folgende verwenden:
Grundsätzlich heißt es: Schnapp dir alles auf jeder Ebene innerhalb von js , was nicht mit * .min.js endet
quelle