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

Using Grunt.js to copy all HTML files from one directory structure to another

我的目录结构很大,这是大多数应用程序的典型特征。

例如,像这样:

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,似乎没有 select 文件类型的任何选项。

有没有人可以建议他们这样做?

此答案中的 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
  }
}

下面的代码可以工作

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
      }
    }