我有这个目录结构:
asdf
|---a
| |---files
| |---folders
|
|---b
|---files
|---folders
我想使用grunt-contrib-compress
(我想是我想要的那个),最终得到2个zip文件a.zip
和b.zip
a.zip
|---files
|---folders
b.zip
|---files
|---folders
有没有办法做到这一点?我无法找到任何关于有多个输出的东西(无论它是否可能都无处可寻)。关于compress
的唯一其他问题是关于制作没有根文件夹的zip(我也想要这个)
任何帮助将不胜感激:)
答案 0 :(得分:2)
看起来grunt-contrib-compress不是最好的解决方案。解决您问题的任务是grunt-zip-directories
对于您的特定情况,任务配置应为:
zip_directories: {
asdf: {
files: [{
filter: 'isDirectory',
expand: true,
cwd: './asdf',
dest: './zip',
src: '*'
}]
}
}
此任务的作用是,它将“./asdf”的所有子目录都拉到单独的zip存档中,然后将存档放到“./zip”文件夹中。所以执行后你应该在'./zip'目录中有两个文件: a.zip 和 b.zip ,正如你在问题中提到的那样。
答案 1 :(得分:0)
压缩任务不提供开箱即用的功能,但使用动态配置有很好的解决方法:
grunt.dynamicCompress = function (path)
{
var target = grunt.file.expand(path);
for (var i in target)
{
grunt.config.set('compress.' + target[i],
{
src:
[
target[i] + '/**'
],
options:
{
archive: 'your-dist-folder/' + target[i].toLowerCase() + '.zip'
}
});
}
};
使用目标路径运行它:
grunt.dynamicCompress('your-target-folder/*');