node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »


dp-grunt-contrib-copy Build Status

Copy files and folders. Forked from grunt-contrib-copy 0.4.1

Getting Started

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install dp-grunt-contrib-copy --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:


This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that you upgrade, but in case you can't please use v0.3.2.

Copy task

Run this task with the grunt copy command.

Task targets, files and options may be specified according to the grunt Configuring tasks guide. ### Options


Type: Function(content, srcpath)

This option is passed to grunt.file.copy as an advanced way to control the file contents that are copied.


Type: String

This option is passed to grunt.file.copy as an advanced way to control which file contents are processed.


Type: String | Function Default 'always'

Controls whether or not the file will be copied.

If onlyIf is a function, is should have the signature: fn(srcPath, destPath, srcStat, destStat) and it should return true if the file is to be copied, false otherwise.

If onlyIf is a string, then it must be one of:

  • always -- the source will always be copied to the destination
  • newer -- the source will only be copied if it is newer than the destination
  • modified -- the source will be copied only if its timestamp is different than that of the destination
  • missing -- the source will only be copied if there is no destination file

Usage Examples

copy: {
  main: {
    files: [
      {src: ['path/*'], dest: 'dest/', filter: 'isFile'}, // includes files in path 
      {src: ['path/**'], dest: 'dest/'}, // includes files in path and its subdirs 
      {expand: true, cwd: 'path/', src: ['**'], dest: 'dest/'}, // makes all src relative to cwd 
      {expand: true, flatten: true, src: ['path/**'], dest: 'dest/', filter: 'isFile'} // flattens results to a single level 

Release History

  • 2013-02-14   v0.4.0   First official release for Grunt 0.4.0.
  • 2013-01-22   v0.4.0rc7   Updating grunt/gruntplugin dependencies to rc7. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
  • 2013-01-13   v0.4.0rc5   Updating to work with grunt v0.4.0rc5. Conversion to grunt v0.4 conventions. Replace basePath with cwd. Empty directory support.
  • 2012-10-17   v0.3.2   Pass copyOptions on single file copy.
  • 2012-10-11   v0.3.1   Rename grunt-contrib-lib dep to grunt-lib-contrib.
  • 2012-09-23   v0.3.0   General cleanup and consolidation. Global options depreciated.
  • 2012-09-17   v0.2.4   No valid source check.
  • 2012-09-16   v0.2.3   Path.sep fallback for node <= 0.7.9.
  • 2012-09-16   v0.2.2   Single file copy support. Test refactoring.
  • 2012-09-06   v0.2.0   Refactored from grunt-contrib into individual repo.

Task submitted by Chris Talkington

This file was generated on Wed Feb 27 2013 17:43:34.