使用动态名称压缩文件夹的内容

时间:2017-08-24 10:32:20

标签: javascript gulp

我想压缩具有动态名称的文件夹的内容,并将生成的压缩文件保存在同一文件夹中。我做的方式不起作用(gulp一直在思考而不会抛出错误或任何东西)。我的代码是:



gulp.task('zipfolder', function() {
  return gulp.src('staticfolder/dynamicNameFolder*/**/*')
    .pipe(zip('result.zip'))
    .pipe(gulp.dest('staticfolder/dynamicNameFolder*/'));
});




修改:动态文件夹的名称为' dynamicNameFolder' +一些数字。由于数字未知,我将 dynamicNameFolder *

谢谢:)

2 个答案:

答案 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才能使其正常工作。