我不知道怎么问这个,但这似乎是一件相当简单的事情。
在这个gulp任务中,每次出现" old"替换为" new"在一堆文件上。
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?
答案 0 :(得分:0)
gulp-rename包有一个前缀选项https://www.npmjs.com/package/gulp-rename
答案 1 :(得分:0)
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
为您提供当前文件的完整路径。