Pourquoi gulp.src n’aime-t-il pas passer un tableau de chemins complets aux fichiers?

Je tente de transmettre gulp.src à un tableau de fichiers que je veux gérer. C’est le tableau tel qu’il est.

['bower_components/jquery/jquery.js', 'bower_components/superscrollorama/js/greensock/TweenMax.min.js', 'bower_components/superscrollorama/jquery.superscrollorama.js' ] 

Je trouve cependant que gulp.src ne semble pas aimer cela et que le troisième élément ne parvient pas à atteindre la destination finale.

J’ai trouvé que tout fonctionne bien lorsque j’introduis des caractères génériques comme celui-ci:

 ['bower_components/**/jquery.js', 'bower_components/**/js/greensock/TweenMax.min.js', 'bower_components/**/jquery.superscrollorama.js' ] 

Mais pourquoi? Quelque chose à voir avec le fonctionnement de la globalisation? J’ai googlé mais je ne le trouve pas.

Peut-être que ce n’est pas le but visé par la globalisation, mais cela n’a aucun sens pour moi. Quelqu’un peut-il nous éclairer?

Lorsque vous transmettez un tableau de chemins complets, chaque fichier est traité indépendamment. Le globbing ne sait pas où est la racine du chemin (en fait, il devine basé sur le premier glob). Par conséquent, chaque fichier est rooté dans le dossier qu’il contient et le chemin relatif est vide.

Cependant, il existe une solution simple. Transmettez un object avec la base clé comme second argument à gulp.src , et tout aura le chemin relatif correct:

 return gulp.src(['bower_components/jquery/jquery.js', 'bower_components/superscrollorama/js/greensock/TweenMax.min.js', 'bower_components/superscrollorama/jquery.superscrollorama.js' ], {base: 'bower_components/'}) .pipe(...);