GULP:仅重命名受影响的文件



我只想在更改的文件的同一文件夹中创建一个具有新扩展名的副本。应如何指定srcdest

var gulp = require('gulp'),
rename = require("gulp-rename"),
watch = require('gulp-watch');

var filePath = "./repo/**/*.xml"
gulp.task('watch', function () {    
watch(filePath, gulp.series('rename'));
});

gulp.task('rename', function () {
return gulp.src(???).pipe(rename(function (path) {
path.extname = ".mei";
})).pipe(gulp.dest(???));
});

试试这个:

var gulp = require('gulp'),
rename = require("gulp-rename"),
watch = require('gulp-watch'),
changedInPlace = require('gulp-changed-in-place');

var filePath = "./repo/**/*.xml"
gulp.task('watch', function () {    
watch(filePath, gulp.series('rename'));
});

gulp.task('rename', function () {
return gulp.src(filePath)
.pipe(changedInPlace())
.pipe(rename(function (path) {
console.log(path);
path.extname = ".mei";
}))
.pipe(gulp.dest('repo'));
});
gulp.task('default', gulp.series('rename', 'watch'));

这使用gulp-changed-in-place插件来只传递同一目录中已更改的文件(在您的案例中为filePath(。

它确实有一个firstRun选项,但我无法让它正常工作——也许这个选项在gullow v4中不太好用?要解决此问题,在设置watch之前调用rename一次,请参阅

gulp.task('default', gulp.series('rename', 'watch'));

现在,它只会更改更改文件的扩展名,并将更改后的文件添加回启动时所在的目录中

相关内容

  • 没有找到相关文章

最新更新