Переименуйте один файл во время копирования с помощью Gulp

Я хочу автоматизировать процесс упаковки моего расширения для Chrome и Firefox, и для этого я использую Gulp. У меня есть два разных файла манифеста, один для Chrome и один для Firefox (manifest.json и manifestff.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?


person Nikola Stojaković    schedule 03.08.2018    source источник


Ответы (1)


Посмотрите 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'));
});
person Mark    schedule 03.08.2018