使用 Gulp 在复制过程中重命名一个文件

Rename one file during copying process with Gulp

我想自动打包 Chrome 和 Firefox 的扩展程序,为此我正在使用 Gulp。我在项目的根目录中有两个不同的清单文件,一个用于 Chrome,一个用于 Firefox(manifest.jsonmanifestff.json)。现在,我想:

  1. 复制 Chrome 扩展目录所需的所有内容。
  2. 对 Firefox 扩展做同样的事情,只是我想在此过程中将 manifestff.json 重命名为 manifest.json

这是我当前为 Firefox 打包扩展的任务:

gulp.task('pack-firefox', () => {
    return gulp.src([
        'manifestff.json',
        'index.html',
        './public/**'
    ], {'base': '.'})
    .pipe(gulp.dest('./ff'));
}

是否可以指定(附加 .pipe())我想将 manifestff.json 复制为 manifest.json

调查gulp-if

const gulp = require('gulp');
const rename = require('gulp-rename');
const gulpIF = require('gulp-if');


gulp.task('pack-firefox', () => {
  return gulp.src([
    'manifestff.json',
    'index.html',
    './public/**'
  ], { 'base': '.' })
    .pipe(gulpIF(function (file) { return file.path.match('manifestff.json') }, rename('manifest.json')))
    .pipe(gulp.dest('./ff'));
});