使用gulp将文件复制到同一目录中的新名称
我正在尝试使用gulp将一个文件复制到具有不同名称的同一目录中-具有不同名称的文件已经存在。在Unix中,这只是gulp中的cp./data/file.json.bak./data/file.json。在Windows系统中,这似乎要复杂得多 我试过: gulp.task'restore-json',函数{ 返回gulp.src'./data/file.json.bak' .pipegulp.dest./data/file.json',{overwrite:true}; }; 如果文件存在,我会得到一个EEXIST错误。如果没有,它将创建file.json作为目录使用gulp将文件复制到同一目录中的新名称,gulp,glob,Gulp,Glob,我正在尝试使用gulp将一个文件复制到具有不同名称的同一目录中-具有不同名称的文件已经存在。在Unix中,这只是gulp中的cp./data/file.json.bak./data/file.json。在Windows系统中,这似乎要复杂得多 我试过: gulp.task'restore-json',函数{ 返回gulp.src'./data/file.json.bak' .pipegulp.dest./data/file.json',{overwrite:true}; }; 如果文件存在,我会
我假设这个问题是因为gulp使用了globbing,并且有效地将src和dest视为路径。你知道我做这件事最有效的方法吗?我认为一种解决方法是将文件复制到tmp目录,然后使用glob通配符重命名和复制,但这是正确的方法吗?传递给gulp.dest的参数不是文件名。它是要将流中的所有文件写入的目录的名称。看 如果要重命名文件,请使用插件:
传递给gulp.dest的参数不是文件名。它是要将流中的所有文件写入的目录的名称。看 如果要重命名文件,请使用插件:
如果我重命名文件,我只是重命名流中的文件,而不是我要保留的原始文件吗?是的,文件仅在流中重命名。这意味着您可以在gulp.dest将文件写入磁盘时有效地创建文件的副本。如果我重命名文件,是否只是重命名流中的文件,而不是我要保留的原始文件?是的,文件仅在流中重命名。这意味着您可以在gulp.dest将文件写入磁盘时有效地创建该文件的副本。
var rename = require('gulp-rename');
gulp.task('restore-json',function(){
return gulp.src('./data/file.json.bak')
.pipe(rename({extname:''}))
.pipe(gulp.dest('./data/'));
});