source can accepts both literal strings as
filepath, or glob patterns. You can also pass arrays to copy several files at
once.
await copy(source, destination[, options])
// Copy one file to a directory, keeping the same name
await copy('./src/index.html', './dist');
// Copy one file, with a new name
await copy('./src/alpha.html', './dist/beta.html');
// Copy files by glob pattern
await copy('./src/*.html', './dist');
// Copy files referenced by a symlink
await copy('./link', './real-file', { resolveSymlinks: true });
Symlinks will not be resolved by default. If you pass options.resolveSymlinks
to true, then the actual file referenced by the symlink will be copied, not
the symlink itself.
This method is clever enough to understand your intent. For example, when copying a file to a directory, it will put the file inside the directory, but when copying a file to another file it will replace the destination.
It will also throw errors instead of performing potentially dangerous operations like overwriting a file with a directory, or copying multiple files to the same destination file.