2017-08-24 87 views
1

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

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

编辑:动态文件夹的名称是 'dynamicNameFolder' +一些号码。由于数量是未知的,我把dynamicNameFolder *

谢谢:)

回答

1

最后经过数十次尝试后,我发现如何去做。我基本上必须使用另外两个gulp插件:fs来同步读取目录路径以及glob以同步读取正则表达式模式。

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)); 
 
})

0

你的水珠是错误的。 staticfolder/dynamicNameFolder*/**/*将不起作用。你可能想要这样的:staticfolder/dynamicNameFolder/**/*。如果你希望这是更有活力的你应该做这样的:

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

当然,你需要提供可变dynamicDirName为它工作。

+0

的dyanmicfolder的名称不断变化,所以我把*说包含名称dyanmicfolder任何文件夹和任何附带背后 –

+0

所以更改文件夹的名称与变量。 – lukaleli

+0

是的,但文件夹的名称是不一样的。使用版本号保持更改。 –

相关问题