使用Gulp w/特定模式重命名文件

Rename Files Using Gulp w/ Specific Pattern

本文关键字:模式 重命名 文件 Gulp 使用      更新时间:2023-09-26

我有一个Gulp任务,需要将内容从一个目录复制到另一个目录,并用特定的模式重命名每个文件。基本上,如果我有main.css,我需要它来创建main.css的副本,并将其命名为main_main_bk.css(不要问,这是我需要遵守的惯例)。为了清楚起见,我需要添加一个_,后跟当前正在处理的文件名,后跟_bk。如何读取Gulp中当前文件的名称?

var gulp = require('gulp');     
var rename = require('gulp-rename');
gulp.task('copit', function() {
  gulp.src('asset/css/*.css')
    .pipe(rename({suffix: '_' + ??? + '_bk'}))
    .pipe(gulp.dest('asset/test'));
});

所以,

asset/css/main.css->asset/test/main_bk.css
asset/css/style.css->asset/test/style_style_bk.css

等等。

您可以使用basename并通过函数对其进行重命名

var gulp = require('gulp');     
var rename = require('gulp-rename');
gulp.task('copit', function() {
  gulp.src('asset/css/*.css')
    .pipe(rename(function (path) {
        path.basename += "_" + path.basename + "_bk";
    }))
    .pipe(gulp.dest('asset/test'));
});