Notable Pottery Manufacturer
    Have ideas to improve npm?Join in the discussion! »

    cpy-sync

    7.0.2 • Public • Published

    cpy-sync Build Status

    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 bytes
    • percent is a value between 0 and 1

    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

    License

    MIT © Sindre Sorhus

    Install

    npm i cpy-sync

    DownloadsWeekly Downloads

    6

    Version

    7.0.2

    License

    MIT

    Unpacked Size

    7.89 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar