Actualmente estoy usando gulp para llamar a un script bash que limpia mi dist/
directorio y mueve los archivos apropiados al directorio limpio. Me gustaría que esto se hiciera con gulp porque no estoy seguro de que el script funcione en un sistema de archivos que no sea * nix.
Hasta ahora, estoy usando el módulo gulp-clean para limpiar el dist/
directorio, pero cuando intento mover los directorios requeridos y sus archivos a la carpeta dist, los directorios están vacíos.
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']);
la llamada gulp dist
da como resultado que el dist/
directorio se complete con los directorios correctos, pero todos están vacíos
$ ls dist/*
dist/manifest.json
dist/_locales:
dist/icons:
dist/page_action:
¿Cómo copio los directorios y su contenido en la dist/
carpeta?
read
opción en src configurada enfalse
(está configurada entrue
forma predeterminada).La pregunta original apunta solo a directorios (también conocidos como carpetas) en su
gulp.src
, es decir,gulp.src(['_locales', ...
en este ejemplo,_locales
es el nombre de un directorio .La respuesta aceptada utiliza un
glob
patrón en sugulp.src
para apuntar a archivos en cualquier lugar de esos directorios, es decirgulp.src(['./_locales/**/*.*', ...
, (observe los asteriscos dobles y los asteriscos filename.extension ). La respuesta aceptada funciona ...... pero la respuesta aceptada solo enfatiza la
base
opción :Experimenté y encontré:
Estrictamente hablando, no es necesario utilizar la
base
opción para lograr lo que pidió el OP: "... y mueve los archivos apropiados al directorio limpio". Labase
opción no hecho a preservar el archivo de la carpeta + estructura (como se describe en la respuesta aceptada), pero labase
opción es no suficiente para mover los archivos como el PO pidió . Preservar la estructura de carpetas + archivos es probablemente lo que espera el OP , por lo que la respuesta aceptada es buena, pero ...Sólo para reiterar lo que hace mover los archivos, son los
glob
patrones:El doble asterisco (
.../**/...
) busca de forma recursiva en todas las subcarpetas, subcarpetas y subcarpetas, etc.Filename.extension asteriscos (
.../*.*
) busca archivos de todos los nombres y todas las extensiones . ¡Así que creo que esta parte merece el mayor énfasis!La respuesta aceptada cambia algo más; agrega un prefijo de
./
a cada ruta a la que se pasan los argumentosgulp.src
. Creo que eso es innecesario / redundante; si no hay./
, (como en la pregunta OP), las rutas se resuelven en relación con el directorio actual, lo que da como resultado el mismo comportamiento . Pero tal vez sea una buena práctica ser explícito con el./
Avísame si me equivoco ...
fuente