Home computickets How to make gulp.dest () wrote to the same directory where there...

How to make gulp.dest () wrote to the same directory where there was a processed file?




Here is an example

var gulp = require ('gulp');
var imageminjpegtran = require ('imagemin-jpegtran');
Gulp.Task ('OptimizeJPG', Function () {
Return gulp.src ('./ images / ** / ** / *.jpg')
  .pipe (gulp.dest ('./'));

I need that all images found in this directory are optimized and recorded in it. But I do not quite understand how it could be done.

Answer 1, Authority 100%

Gulp.Dest supports the use of a function as the first argument. This feature accepts a file as an argument as Vinyl-object . Returning line is used as a directory for saving.

Try this:

gulp.dest (File {
  Return file.Base;

Answer 2, Authority 14%

Specify in Dest the same directory as in SRC

return gulp.src ('./ images / *.jpg')
  .pipe (gulp.dest ('./ images'));

Answer 3

Here is another solution to my task. It is longer and less convenient than @avb but works about 20% faster and gives a more organized log, for each directory.

var merge = require ('merge-stream');
var falders =.
Gulp.Task ('OptimizeImgs', Function () {
 Var Tasks = Folders.map (FUNCTION (ELEMENT) {
 Return Gulp.Src (Element + '*')
   .pipe (Imagemin ({
   Progressive: True,
    RemoveViewBox: False.
   Use: [PNGQUANT ()]
  .pipe (Gulp.Dest (Element));

Programmers, Start Your Engines!

Why spend time searching for the correct question and then entering your answer when you can find it in a second? That's what CompuTicket is all about! Here you'll find thousands of questions and answers from hundreds of computer languages.

Recent questions