作为构建过程的一部分,我正在尝试将一个目录中的所有文件复制到另一个目录中。对于我显式指定的单个文件,它工作得很好,但是当我尝试复制整个目录时,它会做一些奇怪的事情,比如复制完整的目录结构(或者什么都不复制)。以下是我的GruntFile.js中的相关部分:
copy: {
myvoice: {
files: [
{ src:"src/html/index.html", dest:"dist/myvoice/index.html" },
{ src:"src/html/css/style.css", dest:"dist/myvoice/css/style.css" },
{ src:"src/html/js/require.js", dest:"dist/myvoice/js/require.js" },
{ src:"build/myvoice/main.js", dest:"dist/myvoice/js/main.js" },
{ src:"src/html/css/fonts/*", dest:"dist/myvoice/css/fonts/" }
]
}
},
具体来说,这是我不能去工作的最后一行:
{ src:"src/html/css/fonts/*", dest:"dist/myvoice/css/fonts/" }
发布于 2014-05-15 13:45:04
this answer中的flatten: true
选项在某些情况下可能有效,但在我看来,更常见的要求(如我的示例)是将文件夹及其子文件夹结构按原样复制到dest
。似乎在大多数情况下,如果你有子文件夹,它们可能会在代码中以这种方式被引用。执行此操作的关键是cwd
选项,该选项将相对于指定的工作目录保留文件夹结构:
copy: {
files: {
cwd: 'path/to/files', // set working folder / root to copy
src: '**/*', // copy all files and subfolders
dest: 'dist/files', // destination folder
expand: true // required when using cwd
}
}
发布于 2013-09-25 04:14:45
如果您指定文件glob,此任务将维护文件夹结构。您需要的是flatten
选项,它将删除该结构。
{
expand: true,
flatten: true,
src: ['src/html/css/fonts/**'],
dest: 'dist/myvoice/css/fonts/',
filter: 'isFile'
}
在Github repo中查找其余可用选项。希望这能有所帮助。
发布于 2015-07-30 01:44:13
我不得不使用egdy而不是大括号来表示文件段(在Coffeescript中)...
copy: {
files: [
cwd: 'path/to/files'
src: '**/*'
dest: 'dist/files'
expand: true
]
}
https://stackoverflow.com/questions/18966485
复制相似问题