Étiquette : del

[Gulp] Supprimer un ensemble de fichiers ayant la même extension avec Del et la méthode .unshift() en omettant certains fichiers en particulier

Problème

J’ai une tâche style:clean qui supprime des fichiers inutiles et ayant l’extension *.css dans un dossier /style. Le plugin Del fonctionne très bien pour ça, mais j’avais besoin de déclarer le scope des fichiers à cibler par la tâche en 2 entités distinctes :

  • Le chemin vers le dossier style/ et le format de fichier à cibler (config.paths.styles.dest + '*.css').
  • Une liste de fichiers à ignorer (config.clean.style.ignore).

Lors de mes tests infructueux, les fichiers ignorés étaient supprimés.

Solution

La méthode .unshift() permet l’insertion d’éléments en début de tableau.

Dans mon fichier gulpconf.json:

Si vous n’avez pas de fichiers à ignorer, laissez le tableau vide comme ceci:

Dans mon gulpfile.js:

Optimiser ce code en passant par une fonction

ATTENTION: ce code ne fonctionne pas. En réalité, si vous avez plusieurs tâches de clean (css, js, etc…), le lancement d’une seule de ces tâches va également faire le travail de toutes les autres …

Exemple: je lance gulp js:clean et les fichiers CSS concernés par la tâche gulp css:clean sont effacés également.

[Gulp] Supprimer des fichiers ou dossiers avec le module Del

Delete files and folders – You might want to delete some files before running your build. Since deleting files doesn’t work on the file contents, there’s no reason to use a gulp plugin. An excellent opportunity to use a vanilla node module.


Problème:

[15:29:20] ‘styles’ errored after 95 ms
[15:29:20] Error: EEXIST: file already exists, mkdir ‘/home/intlangf/tb/gulp-plugins/dist/css’
at Error (native)

gulp tasks are failing with EEXIST errors (del), Del: Delete files and folders using globs.

Une alternative consite à utiliser del.sync:

Autres solutions à envisager