我想压缩具有动态名称的文件夹的内容,并将生成的压缩文件保存在同一文件夹中。我做的方式不起作用(gulp一直在思考而不会抛出错误或任何东西)。我的代码是:
gulp.task('zipfolder', function() {
return gulp.src('staticfolder/dynamicNameFolder*/**/*')
.pipe(zip('result.zip'))
.pipe(gulp.dest('staticfolder/dynamicNameFolder*/'));
});

修改:动态文件夹的名称为' dynamicNameFolder' +一些数字。由于数字未知,我将 dynamicNameFolder *
谢谢:)
答案 0 :(得分:1)
经过几十次尝试后,我发现了如何做到这一点。我基本上不得不再使用2个gulp插件:glob
同步读取dir路径以及var zip = require('zip');
var glob = require('glob');
var fs = require('fs');
var getDynamicFolderName = fs.readdirSync(staticPath + glob.sync('dynamicFolderName*'));
// inside the glob.sync you can use a lot of patterns and options (check documentation)
gulp.task('zipper', function() {
return gulp.src(getDynamicFolderName + '/**/*')
.pipe(zip('results.zip'))
.pipe(gulp.dest(getDynamicFolderName));
})
同步读取正则表达式模式。
chartr
答案 1 :(得分:0)
你的小球是错的。 staticfolder/dynamicNameFolder*/**/*
无效。你可能想要这样的东西:staticfolder/dynamicNameFolder/**/*
。如果你想让它更具活力,你应该这样做:
gulp.task('zipfolder', function() {
return gulp.src('staticfolder/' + dynamicDirName + '/**/*')
.pipe(zip('result.zip'))
.pipe(gulp.dest('staticfolder/' + dynamicDirName + '/'));
});
当然,您需要提供变量dynamicDirName
才能使其正常工作。