name - gulp-sass
¿Cómo configurar gulp.dest() en el mismo directorio que las entradas de tubería? (3)
Aquí hay dos respuestas.
Primero: es más largo, menos flexible y necesita módulos adicionales, pero funciona un 20% más rápido y le brinda registros para cada carpeta.
var merge = require(''merge-stream'');
var folders =
[
"./pictures/news/",
"./pictures/product/original/",
"./pictures/product/big/",
"./pictures/product/middle/",
"./pictures/product/xsmall/",
...
];
gulp.task(''optimizeImgs'', function () {
var tasks = folders.map(function (element) {
return gulp.src(element + ''*'')
.pipe(sometingToDo())
.pipe(gulp.dest(element));
});
return merge(tasks);
});
Segunda solución: es flexible y elegante, pero más lenta. Lo prefiero.
return gulp.src(''./pictures/**/*'')
.pipe(somethingToDo())
.pipe(gulp.dest(function (file) {
return file.base;
}));
Necesito que todas las imágenes encontradas en cada uno de los directorios se optimicen y se graben en ellos sin establecer la ruta a cada carpeta por separado. No entiendo cómo hacer eso.
var gulp = require(''gulp'');
var imageminJpegtran = require(''imagemin-jpegtran'');
gulp.task(''optimizeJpg'', function () {
return gulp.src(''./images/**/**/*.jpg'')
.pipe(imageminJpegtran({ progressive: true })())
.pipe(gulp.dest(''./''));
});
Aqui tienes:
gulp.task(''optimizeJpg'', function () {
return gulp.src(''./images/**/**/*.jpg'')
.pipe(imageminJpegtran({ progressive: true })())
.pipe(gulp.dest(''./images/''));
});
Gulp toma todo lo que es un comodín o una estrella global en su nombre de archivo virtual. Por lo tanto, todas las partes que sabe que desea seleccionar (como ./images/
) tienen que estar en el directorio de destino.
Puedes usar el parámetro base
:
gulp.task(''uglify'', function () {
return gulp.src(''./dist/**/*.js'', { base: "." })
.pipe(uglify())
.pipe(gulp.dest(''./''));
});