[编辑:解决,见下面的答案]
我想运行grunt-contrib-copy任务,将一个目录(源目录)中的所有内容复制到另一个位置(分发目录),但一个文件夹除外。换句话说,给定结构:
src
丨- images
丨- favicons/
丨- files.jpg
丨- other folders/
丨- individual_file.png
我想移动"图像"但没有" favicons",产生以下内容:
dist
丨- images
丨- other folders/
丨- individual_file.png
然而,我得到的是:
dist
丨- images
丨- favicons (empty)
丨- other folders/
丨- individual_file.png
我在SO上看过以下问题:
grunt (minimatch/glob) folder exclusion
grunt-contrib-copy - ignore folder when copying
Configure grunt copy task to exclude files/folders
但是我的语法出错了。我已经使用了各种各样的通配模式,我最近的成功(可以使用任意数量的不同的通配模式)是在目的地创建文件夹但没有任何文件。
以下是我认为与this answer中接受的答案大致相同的内容:
imageDist: {
expand: true,
cwd: 'src/images/',
src: ['**/*', '!**/favicons/**'],
dest: 'dist/images/'
}
但它导致了一个空的" favicons" 。目录
这里至少有一个我试过的模式中的一个,这也导致了一个空的" favicons"目录。这个对我来说最有意义,因为我说"复制一切"然后"除了favicons"。我不需要用于排除匹配的通配,因为我知道我有一个名为favicons的目录。我还尝试了以下的前导和尾部斜杠(没有通配符)的组合:
imageDist: {
expand: true,
cwd: 'src/images/',
src: ['*', '!favicons'],
dest: 'dist/images/'
}
答案 0 :(得分:0)
我不明白。我注意到我也在复制我的CVS文件夹,在原型设计期间我没有使用我的模板......所以我添加了CVS排除和模板部分。这只是为了期待别人知道我的小费。好像通过魔术,favicon文件夹也开始被排除在外。工作的几乎与建议的一样:
imageDist: {
expand: true,
cwd: 'src/images/',
src: ['**/*', '!**/CVS/**', '!**/favicons/**'],
dest: '<%= dirs.dist %>/images/'
}
我从原来的问题恢复原状,检查理智:
imageDist: {
expand: true,
cwd: 'src/images/',
src: ['**/*', '!**/favicons/**'],
dest: 'dist/images/'
}
......它似乎也有用。
我只能想象我有一个错字。我的意思是,我将我的Gruntfile(我测试失败的地方)复制并粘贴到我的问题中。但不知何故......不知怎的......一定有一个错字不再存在。
我会在这里为后人保留这个问题/答案,但是,是的。现在似乎工作正常。