Copy files
- Fast by using streams.
- Resilient by using graceful-fs.
- User-friendly by accepting globs and creating non-existent destination directories.
- User-friendly error messages.
- Progress reporting.
$ npm install cpy
const cpy = require('cpy');
(async () => {
await cpy(['source/*.png', '!source/goat.png'], 'destination');
console.log('Files copied!');
})();
Returns a Promise<string[]>
with the destination file paths.
Type: string | string[]
Files to copy.
Type: string
Destination directory.
Type: object
Options are passed to globby.
In addition, you can specify the below options.
Type: string
Default: process.cwd()
Working directory to find source files.
Type: boolean
Default: true
Overwrite existing files.
Type: boolean
Default: false
Preserve path structure.
Type: string | Function
Filename or function returning a filename used to rename every file in source
.
const cpy = require('cpy');
(async () => {
await cpy('foo.js', 'destination', {
rename: basename => `prefix-${basename}`
});
})();
Type: Function
{
completedFiles: number,
totalFiles: number,
completedSize: number
}
completedSize
is in bytespercent
is a value between0
and1
Note that the .on()
method is available only right after the initial cpy
call, so make sure you add a handler
before awaiting the promise:
(async () => {
await cpy(source, destination).on('progress', progress => {
// …
});
})();