cpy-sync
v7.0.2
Published
Copy files (one after the other)
Downloads
5
Maintainers
Readme
cpy-sync
Copy files (one after the other)
Why
- (This fork) Parallel copying streams run really slow, I needed a version of this module that would work faster by copying one file at a time.
- Fast by using streams.
- Resilient by using graceful-fs.
- User-friendly by accepting globs and creating non-existant destination directories.
- User-friendly error messages.
- Progress reporting.
Install
$ npm install cpy-sync
Usage
const cpy = require('cpy-sync');
(async () => {
await cpy(['src/*.png', '!src/goat.png'], 'dist');
console.log('Files copied!');
})();
API
cpy(files, destination, [options])
files
Type: string
Array
Files to copy.
destination
Type: string
Destination directory.
options
Type: Object
Options are passed to cp-file and globby.
cwd
Type: string
Default: process.cwd()
Working directory to find source files.
parents
Type: boolean
Default: false
Preserve path structure.
rename
Type: string
Function
Filename or function returning a filename used to rename every file in files
.
cpy('foo.js', 'destination', {
rename: basename => `prefix-${basename}`
});
Progress reporting
cpy.on('progress', handler)
handler(progress)
Type: Function
progress
{
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 calling .then()
:
(async () => {
await cpy(source, destination).on('progress', progress => {
// …
});
})();
Related
- cpy - Original of this module
- cpy-cli - CLI for this module
- cp-file - Copy a single file
- move-file - Move a file
- make-dir - Make a directory and its parents if needed
License
MIT © Sindre Sorhus