J'utilise actuellement gulp pour appeler un script bash qui nettoie mon dist/
répertoire et déplace les fichiers appropriés vers le répertoire propre. J'aimerais que cela soit fait avec gulp car je ne suis pas sûr que le script fonctionnerait sur un système de fichiers non * nix.
Jusqu'à présent, j'utilise le module gulp-clean pour nettoyer le dist/
répertoire, mais lorsque j'essaye de déplacer les répertoires requis et leurs fichiers vers le dossier dist, les répertoires sont vides.
var gulp = require('gulp'),
clean = require('gulp-clean');
gulp.task('clean', function(){
return gulp.src(['dist/*'], {read:false})
.pipe(clean());
});
gulp.task('move',['clean'], function(){
gulp.src(['_locales', 'icons', 'src/page_action', 'manifest.json'])
.pipe(gulp.dest('dist'));
});
gulp.task('dist', ['move']);
l'appel gulp dist
entraîne le dist/
remplissage du répertoire avec les répertoires corrects mais ils sont tous vides
$ ls dist/*
dist/manifest.json
dist/_locales:
dist/icons:
dist/page_action:
Comment copier les répertoires et leur contenu dans le dist/
dossier?
read
option dans src n'est pas définie surfalse
(elle est définie surtrue
par défaut).La question d'origine ne cible que les répertoires (aka dossiers) dans son
gulp.src
, c'est-gulp.src(['_locales', ...
à- dire dans cet exemple,_locales
est le nom d'un répertoire .La réponse acceptée utilise un
glob
modèle dans ses fichiersgulp.src
cibles n'importe où dans ces répertoires, c'est -à- dire (notez les astérisques doubles et les astérisques filename.extension ). La réponse acceptée fonctionne ...gulp.src(['./_locales/**/*.*', ...
... mais la réponse acceptée ne fait que souligner l'
base
option :J'ai expérimenté et trouvé:
Strictement parlant, il n'est pas nécessaire d'utiliser l'
base
option pour réaliser ce que l'OP a demandé: "... et déplace les fichiers appropriés vers le répertoire propre." L'base
option de ne conserve en effet le fichier dossier + la structure (comme décrit dans la réponse acceptée), mais l'base
option est insuffisante pour déplacer les fichiers que l'OP a demandé . Préserver la structure dossier + fichier est probablement ce que l'OP attend , donc la réponse acceptée est bonne, mais ...Juste pour réitérer ce qui déplace les fichiers, ce sont les
glob
modèles:Double-astérisque (
.../**/...
) recherche de manière récursive dans tous les sous-dossiers, les sous-dossiers des sous-dossiers, etc.Filename.extension astérisques (
.../*.*
) trouve les fichiers de tous les noms et de toutes les extensions . Je pense donc que cette partie mérite le plus d’accent!La réponse acceptée change autre chose; il ajoute un préfixe
./
à chaque chemin des arguments passés àgulp.src
. Je pense que c'est inutile / redondant; s'il n'y a pas./
, (comme dans la question OP), les chemins sont résolus par rapport au répertoire courant - ce qui entraîne le même comportement . Mais c'est peut-être une bonne pratique d'être explicite avec le./
Faites-moi savoir si je me trompe ...
la source