Copy files
IMPORTANT: This package has a lot of problems and I unfortunately don't have time to fix them. I would recommend against using this package until these problems are resolved. Help welcome (see the issue tracker) ð
import cpy from 'cpy'; await cpy([ 'source/*.png', // Copy all .png files '!source/goat.png', // Ignore goat.png ], 'destination'); // Copy node_modules to destination/node_modules await cpy('node_modules', 'destination'); // Copy node_modules content to destination await cpy('node_modules/**', 'destination'); // Copy node_modules structure but skip all files except package.json files await cpy('node_modules/**/*.json', 'destination'); // Copy all png files into destination without keeping directory structure await cpy('**/*.png', 'destination', {flat: true}); console.log('Files copied!');cpy(source, destination, options?)
Returns a Promise<string[]>
with the destination file paths.
Type: string | string[]
Files to copy.
If any of the files do not exist, an error will be thrown (does not apply to globs).
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.
[!NOTE] Globs and explicit paths preserve paths differently. Globs keep paths relative to the globâs parent (
source/*.md
âdistribution/readme.md
). Explicit paths keep paths relative tocwd
(source/file.js
âdistribution/source/file.js
). Use a single glob or setcwd
so all patterns share the same base.
Type: boolean
Default: true
Overwrite existing files.
Type: boolean
Default: false
Flatten directory structure. All copied files will be put in the same directory.
import cpy from 'cpy'; await cpy('src/**/*.js', 'destination', { flat: true });
Type: string | Function
Filename or function returning a filename used to rename every file in source
.
import cpy from 'cpy'; await cpy('foo.js', 'destination', { // The `basename` is the filename with extension. rename: basename => `prefix-${basename}` }); await cpy('foo.js', 'destination', { rename: 'new-name' });
Type: number
Default: (os.cpus().length || 1) * 2
Number of files being copied concurrently.
Type: boolean
Default: true
Ignores junk files.
Type: Function
Function to filter files to copy.
Receives a source file object as the first argument.
Return true to include, false to exclude. You can also return a Promise that resolves to true or false.
import cpy from 'cpy'; await cpy('foo', 'destination', { filter: file => file.extension !== 'nocopy' });
Type: Function
The given function is called whenever there is measurable progress.
import cpy from 'cpy'; await cpy('foo', 'destination', { onProgress: progress => { // ⦠} });
Type: string
Example: '/tmp/dir/foo.js'
Resolved path to the file.
Type: string
Example: 'dir/foo.js'
if cwd
was '/tmp'
Relative path to the file from cwd
.
Type: string
Example: 'foo.js'
Filename with extension.
Type: string
Example: 'foo'
Filename without extension.
Type: string
Example: 'js'
File extension.
The onProgress
option provides progress information during file copying:
import cpy from 'cpy'; await cpy(source, destination, { onProgress: progress => { console.log(`Progress: ${Math.round(progress.percent * 100)}%`); } });
{ completedFiles: number, totalFiles: number, completedSize: number, percent: number, sourcePath: string, destinationPath: string, }
completedFiles
- Number of files copied so far.totalFiles
- Total number of files to copy.completedSize
- Number of bytes copied so far.percent
- Progress percentage as a value between 0
and 1
.sourcePath
- Absolute source path of the current file being copied.destinationPath
- Absolute destination path of the current file being copied.Type: Function
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:
import cpy from 'cpy'; await cpy(source, destination).on('progress', progress => { // ⦠});
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4