1 回答
TA贡献1784条经验 获得超2个赞
试试这个:
const glob = require("glob");
const zipFiles = glob.sync('sourcefiles/*.zip');
gulp.task('unzip-filtered-rename', function (done) {
zipFiles.forEach(function (zipFile) {
const zipFileBase = path.parse(zipFile).name;
return gulp.src(zipFile)
// .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(rename({
basename: zipFileBase,
}))
.pipe(gulp.dest("./sourcefiles_unpacked")) // sourcefiles_unpacked: "./sourcefiles_unpacked/"
});
done();
});
我注释掉了您仅出于测试目的而做的其他事情。通过 forEach 或 map 运行每个文件允许您在流的开头设置一个变量,该变量将在以下流中可用。
另请参阅如何使用 Gulp 解压缩同一文件夹中的多个文件,以获取有关设置要在流中使用的变量的更多讨论。
添加回答
举报