首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用grunt-contrib-compress将多个文件夹压缩为多个zip文件

使用grunt-contrib-compress将多个文件夹压缩为多个zip文件
EN

Stack Overflow用户
提问于 2015-02-04 03:37:58
回答 2查看 769关注 0票数 1

我有这个dir结构:

代码语言:javascript
复制
asdf
 |---a
 |   |---files
 |   |---folders
 |
 |---b
     |---files
     |---folders

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

代码语言:javascript
复制
 a.zip
 |---files
 |---folders

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

有没有办法做到这一点?我在任何地方都找不到有多个输出的东西(它没有说明这是可能的还是不可能的)。关于compress的唯一其他问题是如何在没有根文件夹的情况下压缩(我也想这样做)

如有任何帮助,我们将不胜感激:)

EN

回答 2

Stack Overflow用户

发布于 2017-05-25 14:48:32

看起来grunt-contrib compress不是最好的解决方案。解决您的问题的任务是grunt-zip-directories

对于您的特定情况,任务配置应为:

代码语言:javascript
复制
zip_directories: {
    asdf: {
        files: [{
            filter: 'isDirectory',
            expand: true,
            cwd: './asdf',
            dest: './zip',
            src: '*'
        }]
    }
}

这个任务的作用是,它获取“./asdf”的所有子目录,并将它们压缩到单独的zip归档文件中,然后将这些归档文件放到“./zip”文件夹中。所以在执行之后,您应该在“./zip”目录中有两个文件: a.zip和b.zip,正如您在问题中所问的那样。

票数 2
EN

Stack Overflow用户

发布于 2015-11-12 01:22:40

压缩任务不提供开箱即用功能,但使用动态配置有很好的变通方法:

代码语言:javascript
复制
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'
            }
        });
    }
};

使用您的目标路径运行它:

代码语言:javascript
复制
grunt.dynamicCompress('your-target-folder/*');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28307299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档