【问题标题】:How to add a prefix on gulp-search-replace如何在 gulp-search-replace 上添加前缀
【发布时间】:2018-07-15 15:04:00
【问题描述】:

我不知道怎么问这个问题,但这似乎是一件相当简单的事情。

在这个 gulp 任务中,在一堆文件中,每次出现的“旧”都被替换为“新”。

gulp.task('prefix-replace', function () {
    return gulp.src('svg/*')
        .pipe(replace('old', 'new'))
        .pipe(gulp.dest('dist/'));
});

如何获取文件的名称(或索引或​​任何唯一 ID),以便替换每个文件都有唯一的前缀?

我试过uuid:

gulp.task('prefix-replace', function () {
    return gulp.src('svg/*')
        .pipe(replace('old', uuidv4() + 'new'))
        .pipe(gulp.dest('dist/'));
});

但这会为所有文件中的每个替换生成相同的 id(我知道这不是一个 for 循环,但我现在正在努力处理流,你可以清楚地看到)。

这将为每个替换生成一个新的 id,这也不是我想要的:

gulp.task('prefix-replace', function () {
    return gulp.src('svg/*')
       .pipe(replace('term', function() {
            return uuidv4() + 'term'
        }))
        .pipe(gulp.dest('dist/'));
});

如何获取每个文件的唯一ID

【问题讨论】:

    标签: node.js functional-programming stream gulp


    【解决方案1】:

    gulp-replace with file object 确实可以访问乙烯基文件参考,您可以使用它来获取当前文件名,如下所示:

    gulp.task('prefix-replace', function () {
        return gulp.src('svg/*')
           .pipe(replace('term', function() {
                return this.file.relative + ': term'
            }))
            .pipe(gulp.dest('dist/'));
    });
    

    this.file.relative 是一个字符串,因此您可以在需要时对其使用字符串操作(例如剥离扩展名)。 this.file.path 为您提供当前文件的完整路径。

    【讨论】:

      【解决方案2】:

      gulp-rename 包有一个前缀选项https://www.npmjs.com/package/gulp-rename

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 1970-01-01
        • 1970-01-01
        • 2016-03-29
        • 2018-11-01
        相关资源
        最近更新 更多