CodyBugstein
CodyBugstein

Reputation: 23302

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

I have a large directory structure, typical of most apps.

For example, like this:

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

I would like to copy all the HTML files - and ONLY the HTML files - in all the directories into another folder.

I'm currently using Grunt copy to copy all files, but now I'd like to do so just for the HTML. In the docs, there doesn't seem to be any option to select a file type.

Does anyone have a hack they could suggest to do this?

Upvotes: 2

Views: 2604

Answers (2)

poldy
poldy

Reputation: 204

The flatten: true option as in this answer might work for some cases, but it seems to me that the more common requirement (as in my case) is to copy a folder and its sub-folder structure, as-is, to dest. It seems that in most cases if you have sub-folders, they are probably being referenced that way in code. The key to doing this is the cwd option, which will preserve folder structure relative to the specified working directory:

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

Upvotes: 0

Stephu
Stephu

Reputation: 3334

The following code will work

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

Upvotes: 9

Related Questions