使用Grunt.js将所有HTML文件从一个目录结构复制到另一个目录结构

时间:2015-01-26 09:20:03

标签: build gruntjs grunt-contrib-copy

我有一个大型目录结构,这是大多数应用程序的典型结构。

例如,像这样:

theprojectroot
|- src
|     |- app
|     |     |- index.html
|     |     |- index.js
|     |     |- userhome
|     |     |     |- userhome.html
|     |     |     |- userhome.js
|     |     |- management
|     |     |     |- management.html
|     |     |     |- management.js
|     |     |- social
|     |     |     |- social.html
|     |     |     |- social.js
|     |- assets
|- vendor
|- package.json

我想将所有HTML文件和 HTML文件 - 复制到所有目录中。

我目前正在使用Grunt copy来复制所有文件,但现在我只想为HTML做这件事。 In the docs,似乎没有选择文件类型的选项。

有没有人有他们建议这样做的黑客?

2 个答案:

答案 0 :(得分:9)

以下代码可以使用

copy: {
    files: {
        cwd: 'path/to/files',  // set working folder / root to copy
        src: '**/*.html',      // copy all files and subfolders **with ending .html**
        dest: 'dist/files',    // destination folder
        expand: true           // required when using cwd
      }
    }

答案 1 :(得分:0)

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

copy: {
  files: {
    cwd: 'path/to/files',  // set working folder / root to copy
    src: '**/*.html',      // copy only html files
    dest: 'dist/files',    // destination folder
    expand: true           // required when using cwd
  }
}