Skip to content

Instantly share code, notes, and snippets.

@7studio
Last active May 18, 2017 13:06
Show Gist options
  • Save 7studio/bf7773d16301ebf52ba989ac3a563e11 to your computer and use it in GitHub Desktop.
Save 7studio/bf7773d16301ebf52ba989ac3a563e11 to your computer and use it in GitHub Desktop.
`gulp.src` and the trailing slash

Structude de départ :

svgs/
  fileA.svg
  fileB.svg.bkp
  spr-A.svg
  dir1/
    file1A.svg
    file1B.svg
  spr-dir2/
    file2A.svg
    file2B.svg

Structude souhaitée après la copie :

svgs/
  fileA.svg
  spr-A.svg
  dir1/
    file1A.svg
    file1B.svg

Tache Gulp simplifiée :

gulp.task('svgs', (done) => {
    return gulp.src([
    	'svgs/**/*',
      '!svgs/**/*.bkp',
      '!svgs/**/spr-*/',
      '!svgs/**/spr-*/**/*',
    ])
    .pipe(gulp.dest('svgs'));
});

Résultat : Le fichier spr-A.svg a été retiré par la règle !svgs/**/spr-*/ alors que celui-ci a été écrite de façon à n'exclure que les répertoires.

svgs/
  fileA.svg
  dir1/
    file1A.svg
    file1B.svg

Après quelques recherches, il semble que gulp.src soit basé sur glob mais contrairement à ce dernier, gulp.src ne tient pas compte du / final pour faire la différence entre un fichier et un répertoire.

J'ai loupé un truc ?

@sdussaut
Copy link

Ahaha effectivement c'est beaucoup plus radical :D L'important c'est que ça fonctionne même si on aimerait que tout soit toujours parfait…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment