首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Grunt.js Copy将所有文件从目录复制到另一个目录

使用Grunt.js Copy将所有文件从目录复制到另一个目录
EN

Stack Overflow用户
提问于 2013-09-24 02:42:25
回答 4查看 82.4K关注 0票数 93

作为构建过程的一部分,我正在尝试将一个目录中的所有文件复制到另一个目录中。对于我显式指定的单个文件,它工作得很好,但是当我尝试复制整个目录时,它会做一些奇怪的事情,比如复制完整的目录结构(或者什么都不复制)。以下是我的GruntFile.js中的相关部分:

代码语言:javascript
复制
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/" }
    ]
  }
},

具体来说,这是我不能去工作的最后一行:

代码语言:javascript
复制
      { src:"src/html/css/fonts/*", dest:"dist/myvoice/css/fonts/" }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-15 13:45:04

this answer中的flatten: true选项在某些情况下可能有效,但在我看来,更常见的要求(如我的示例)是将文件夹及其子文件夹结构按原样复制到dest。似乎在大多数情况下,如果你有子文件夹,它们可能会在代码中以这种方式被引用。执行此操作的关键是cwd选项,该选项将相对于指定的工作目录保留文件夹结构:

代码语言:javascript
复制
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
  }
}
票数 156
EN

Stack Overflow用户

发布于 2013-09-25 04:14:45

如果您指定文件glob,此任务将维护文件夹结构。您需要的是flatten选项,它将删除该结构。

代码语言:javascript
复制
{
    expand: true,
    flatten: true,
    src: ['src/html/css/fonts/**'],
    dest: 'dist/myvoice/css/fonts/',
    filter: 'isFile'
}

Github repo中查找其余可用选项。希望这能有所帮助。

票数 43
EN

Stack Overflow用户

发布于 2015-07-30 01:44:13

我不得不使用egdy而不是大括号来表示文件段(在Coffeescript中)...

代码语言:javascript
复制
copy: {
  files: [
    cwd: 'path/to/files'
    src: '**/*'
    dest: 'dist/files'
    expand: true
  ]
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18966485

复制
相关文章

相似问题

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