我有一个包含一堆图像的文件夹,我希望gulp用新的图像文件替换其中的每个图像,但不更改其原始名称

gulp.task('img', function() {
    return gulp.src(`source/template/img/**/*`, base: './')
    .pipe()// A pipe to replace multipe files with one file but keeping their original name
    .pipe(gulp.dest(`./`));
});


我怎样才能做到这一点?

最佳答案

这利用vinyl-map来处理管道功能。它还使用readFileSync,因为我无法使其异步工作。如果有人知道该怎么做,请修改我的答案或发表评论/新答案。

MightyRiversbank.jpg是用于替换tempImages目录中所有现有图像的模板图像。

const gulp = require('gulp')
const fs = require('fs')
const map = require('vinyl-map')
const gutil = require('gulp-util')

gulp.task('replaceImages', function() {
    const replaceImage = map(function(code, filename, callback){
      const data = fs.readFileSync('MightyRiversbank.jpg')
      return data
    })

    gutil.log("replacing images")
    return gulp.src(`tempImages/**/*`)
    .pipe(replaceImage)
    .pipe(gulp.dest(`tempImages`))
})

关于javascript - 用1个文件替换Folder中的所有文件,但将其原始名称保留在Gulp中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51887010/

10-12 12:36
查看更多