Skip to content

sindresorhus/copy-file

Repository files navigation

copy-file

Copy a file

Highlights

  • It's super fast by cloning the file whenever possible.
  • Resilient by using graceful-fs.
  • User-friendly by creating non-existent destination directories for you.
  • Can be safe by turning off overwriting.
  • Preserves file mode but not ownership.
  • User-friendly errors.

Install

npm install copy-file

Usage

import {copyFile} from 'copy-file';

await copyFile('source/unicorn.png', 'destination/unicorn.png');
console.log('File copied');

API

copyFile(source, destination, options?)

Returns a Promise that resolves when the file is copied.

The file is cloned if the onProgress option is not passed and the file system supports it.

copyFileSync(source, destination, options?)

source

Type: string

The file you want to copy.

The file is cloned if the file system supports it.

destination

Type: string

Where you want the file copied.

options

Type: object

overwrite

Type: boolean
Default: true

Overwrite existing destination file.

cwd

Type: string
Default: process.cwd()

The working directory to find source files.

The source and destination path are relative to this.

directoryMode

Type: number
Default: 0o777

Permissions for created directories.

It has no effect on Windows.

onProgress

Type: (progress: ProgressData) => void

The given function is called whenever there is measurable progress.

Only available when using the async method.

ProgressData
{
	sourcePath: string,
	destinationPath: string,
	size: number,
	writtenBytes: number,
	percent: number
}
  • sourcePath and destinationPath are absolute paths.
  • size and writtenBytes are in bytes.
  • percent is a value between 0 and 1.
Notes
  • For empty files, the onProgress callback function is emitted only once.
import {copyFile} from 'copy-file';

await copyFile(source, destination, {
	onProgress: progress => {
		// …
	}
});

Related

  • cpy - Copy files
  • cpy-cli - Copy files on the command-line
  • move-file - Move a file
  • make-dir - Make a directory and its parents if needed