1

我有这个目录结构:

asdf
 |---a
 |   |---files
 |   |---folders
 |
 |---b
     |---files
     |---folders

我想使用grunt-contrib-compress(我想是我想要的),最终得到 2 个 zip 文件a.zipb.zip

 a.zip
 |---files
 |---folders

 b.zip
 |---files
 |---folders

有没有办法做到这一点?我在任何地方都找不到关于拥有多个输出的东西(无论是否可能,它都没有说明)。唯一的其他问题compress是关于制作没有根文件夹的zip(我也想这样做)

任何帮助,将不胜感激 :)

4

2 回答 2

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.zipb.zip,正如您在问题中所问的那样。

于 2017-05-25T06:48:32.263 回答
0

compress 任务不提供开箱即用的功能,但使用动态配置有很好的解决方法:

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/*');
于 2015-11-11T17:22:40.400 回答