我有以下目录结构,我想压缩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文件的根目录中。
这可以通过某种方式实现吗?
谢谢
答案 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/