使用grunt-contrib-compress将内容压缩到归档根目录

时间:2013-07-12 14:17:57

标签: javascript gruntjs

我有以下目录结构,我想压缩dev文件夹的内容并将其放在生成的存档的根目录中,而不将其包装在顶级文件夹中:

_build/    #build scripts
dist/      #destination
dev/       #source

以下是代码(_build中的gruntfile.js):

    compress: {             
         main : {
            options : {
                archive : "../dist/dev.zip"
            },
            files : [
                { expand: true, src : "../dev/**/*" }
            ]
        }     
      }

我希望我只能压缩dev文件夹的内容并将其放入dist文件夹中。但是当我尝试这样做时,dev的所有内容都压缩在根文件夹中。

实际生成的zip:

dist/
   |____ dev.zip
          |_____ dev/
                  |_____ index.html
                  |_____ styles/style.css

但我希望zip文件是这样的:

dist/
   |____ dev.zip
        |_____ index.html
        |_____ styles/style.css
你知道吗?这些文件被包装在一个文件夹中(与zip同名),而不是放在zip文件的根目录中。

这可以通过某种方式实现吗?

谢谢

2 个答案:

答案 0 :(得分:11)

你可以在这里公开:https://github.com/gruntjs/grunt-contrib-compress/issues/33

例如:

compress : {
  main : {
    options : {
      archive : "myapp.zip"
    },
    files : [
      { expand: true, src : "**/*", cwd : "dist/" }
    ]
  }
}

将在根路径中生成myapp.zip,计算/ dist中包含的所有文件和目录,但不包括dist目录本身。

答案 1 :(得分:6)

另一个例子,更符合原始问题:

    compress: {
    main: {
        options: {
            archive : "../dist/dev.zip"
        },
        files: [
            {
                expand: true,
                cwd: '../dev/',
                src: ['**'],
            }
        ]
    },
},

这应该是你的扁平结构:

 dist/
   |____ dev.zip
        |_____ index.html
        |_____ styles/style.css

查看关于grunt-compress的这篇精彩文章:http://www.charlestonsw.com/what-i-learned-about-grunt-compress/