Skip to content

๐Ÿ“‚ Recursively copy a folder (CLI for package.json scripts)

License

Notifications You must be signed in to change notification settings

center-key/copy-folder-util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

73 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

copy-folder-util

logo

Recursively copy files from one folder to another folder (CLI tool designed for use in npm package.json scripts)

License:MIT npm Build

copy-folder-util takes a source folder and copies its files and subfolders to a new destination.ย  The command's console output includes a timestamp and formatting helpful in build systems.

screenshot

A) Setup

Install package for node:

$ npm install --save-dev copy-folder-util

B) Usage

1. npm package.json scripts

Run copy-folder from the "scripts" section of your package.json file.

Parameters:

  • The first parameter is the source folder.
  • The second parameter is the target folder.

Example package.json scripts:

   "scripts": {
      "make-dist": "copy-folder build dist",
      "make-docs": "copy-folder src/web --ext=.html docs/api-manual"
   },

2. Command-line npx

Example terminal commands:

$ npm install --save-dev copy-folder-util
$ npx copy-folder src/web ext=.html docs/api-manual

You can also install copy-folder-util globally (--global) and then run it anywhere directly from the terminal.

3. CLI flags

Command-line flags:

Flag Description Value
--basename Filter files by filename ignoring the file extension. string
--cd Change working directory before starting copy. string
--ext Filter files by file extension, such as .js.
Use a comma to specify multiple extensions.
string
--note Place to add a comment only for humans. string
--quiet Suppress informational messages. N/A
--summary Only print out the single line summary message. N/A

Examples:

  • copy-folder build --basename=index dist
    Only copies files with filenames matching index.*.

  • copy-folder -cd=spec fixtures mock1
    Copies the folder spec/fixtures to spec/mock1.

  • copy-folder build dist --summary
    Displays the summary but not the individual files copied.

  • copy-folder 'src/Legal Notices' dist --summary
    Copies a folder that has a space in its name.

  • copy-folder src/web --ext=.js,.html docs
    Copies only the JavaScript and HTML files to the docs folder.

Note: Single quotes in commands are normalized so they work cross-platform and avoid the errors often encountered on Microsoft Windows.

C) Application Code

Even though copy-folder-util is primarily intended for build scripts, the package can be used programmatically in ESM and TypeScript projects.

Example:

import { copyFolder } from 'copy-folder-util';

const options = { fileExtensions: ['.html', '.js'] };
const results = copyFolder.cp('src/web', 'docs/api-manual', options);
console.log('Number of files copied:', results.count);

See the TypeScript Declarations at the top of copy-folder.ts for documentation.



CLI Build Tools for package.json

  • ๐ŸŽ‹ add-dist-header:ย  Prepend a one-line banner comment (with license notice) to distribution files
  • ๐Ÿ“„ copy-file-util:ย  Copy or rename a file with optional package version number
  • ๐Ÿ“‚ copy-folder-util:ย  Recursively copy files from one folder to another folder
  • ๐Ÿชบ recursive-exec:ย  Run a command on each file in a folder and its subfolders
  • ๐Ÿ” replacer-util:ย  Find and replace strings or template outputs in text files
  • ๐Ÿ”ข rev-web-assets:ย  Revision web asset filenames with cache busting content hash fingerprints
  • ๐Ÿš† run-scripts-util:ย  Organize npm package.json scripts into groups of easy to manage commands
  • ๐Ÿšฆ w3c-html-validator:ย  Check the markup validity of HTML files using the W3C validator

Feel free to submit questions at:
github.com/center-key/copy-folder-util/issues

MIT License