使用gulp

时间:2016-06-13 12:24:13

标签: gulp glob

我尝试使用gulp将一个文件复制到具有不同名称的同一目录 - 已存在具有不同名称的文件。在Unix中,这只是cp ./data/file.json.bak ./data/file.json在gulp中它似乎更棘手(我在Windows系统上)。

我试过了:

gulp.task('restore-json',function(){ return gulp.src('./data/file.json.bak') .pipe(gulp.dest('./data/file.json',{overwrite:true})); });

如果文件存在,则会出现EEXIST错误。如果没有,则会创建file.json作为目录。

我假设这个问题是因为gulp使用globbing并且有效地将srcdest视为路径。你知道我能做到这一点最有效的方法吗?我想一个解决方法是将文件复制到tmp目录,然后使用glob通配符重命名和复制,但这是正确的方法吗?

1 个答案:

答案 0 :(得分:4)

您传递给gulp.dest()的论据是不是文件名。您希望将流中的所有文件写入目录的名称。请参阅docs

如果要重命名文件,请使用gulp-rename插件:

var rename = require('gulp-rename');

gulp.task('restore-json',function(){
  return gulp.src('./data/file.json.bak')
    .pipe(rename({extname:''}))
    .pipe(gulp.dest('./data/'));
});