Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including cp-file with all npm packages installed. Try it out:

var cpFile = require("cp-file")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

cp-file v9.0.0

Copy a file

cp-file Build Status Coverage Status

Copy a file


  • Fast by using streams in the async version and fs.copyFileSync() in the synchronous version.
  • 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.


$ npm install cp-file


const cpFile = require('cp-file');

(async () => {
    await cpFile('source/unicorn.png', 'destination/unicorn.png');
    console.log('File copied');


cpFile(source, destination, options?)

Returns a Promise that resolves when the file is copied.

cpFile.sync(source, destination, options?)


Type: string

The file you want to copy.


Type: string

Where you want the file copied.


Type: object


Type: boolean
Default: true

Overwrite existing destination file.

cpFile.on('progress', handler)

Progress reporting. Only available when using the async method.


Type: Function

    sourcePath: string,
    destinationPath: string,
    size: number,
    writtenBytes: number,
    percent: number
  • source and destination are absolute paths.
  • size and writtenBytes are in bytes.
  • percent is a value between 0 and 1.
  • For empty files, the progress event is emitted only once.
  • The .on() method is available only right after the initial cpFile() call. So make sure you add a handler before .then():
const cpFile = require('cp-file');

(async () => {
    await cpFile(source, destination).on('progress', data => {
        // …


  • 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


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free