用1个文件替换Folder中的所有文件,但将其原始名称保留在Gulp中

时间:2018-08-17 00:42:29

标签: javascript node.js npm replace gulp

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

<li class="b-inBoxItem" *ngFor="let item of uploader.queue">
  <div>
    <span *ngIf="item.file.name.includes('.png')" class="ic ic-file-image"></span>
    <span *ngIf="item.file.name.includes('.jpeg')" class="ic ic-file-image"></span>
    <span *ngIf="item.file.name.includes('.doc')" class="ic ic-file-stats"></span>
      .
      .
      .
    <span *ngIf="!item.file.name.includes('.png') && !item.file.name.includes('.jpeg') && !item.file.name.includes('.doc')" class="ic ic-file-empty"></span>
  </div>
</li>

我该怎么做?

1 个答案:

答案 0 :(得分:1)

这利用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`))
})