我在文件夹中有一个 zip 文件,我想提取其中一个(压缩的)文件并source file basename + .xml
在文件夹中给它一个文件名模式./sourcefiles_unpacked/
./sourcefiles/test.zip
=>
./sourcefiles/test.zip
./sourcefiles_unpacked/test.xml
解压缩和过滤与 gulp-unzip 配合得很好,但是我不确定如何从 gulp.src 调用中访问文件名。
gulp.task('unzip-filtered-rename', function() {
return gulp.src(paths.unzip_sourcefiles)
// .pipe(debug())
.pipe(plumber({
errorHandler: notify.onError('unzip-filtered-rename error: <%= error.message %>')
}))
.pipe(changed(paths.excel_targetdir_local_glob, {
extension: '.xml'
}))
.pipe(unzip({filter : function(entry){return minimatch(entry.path, "contents.xml")}}))
.pipe(gulp.rename(function(path){
// ? What do I put here to rename each target file to
// ? its originating zip file's basename?
})) // "==> test.xml",
.pipe(gulp.dest(paths.sourcefiles_unpacked)) // sourcefiles_unpacked: "./sourcefiles_unpacked/"
});
一旦 gulp.rename() 被调用,块就被重命名为它在 zipfile 中的名称。
- 如何访问或存储早期管道的文件路径以用于重命名函数调用?
- 如果路径包含 glob“./sourcefiles_unpacked/”,是否正确配置了 gulp.dest?