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());
});
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