Skip to content

Latest commit

 

History

History
105 lines (81 loc) · 5.07 KB

README.md

File metadata and controls

105 lines (81 loc) · 5.07 KB

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-headerPrepend a one-line banner comment (with license notice) to distribution files
  • 📄 copy-file-utilCopy or rename a file with optional package version number
  • 📂 copy-folder-utilRecursively copy files from one folder to another folder
  • 🪺 recursive-execRun a command on each file in a folder and its subfolders
  • 🔍 replacer-utilFind and replace strings or template outputs in text files
  • 🔢 rev-web-assetsRevision web asset filenames with cache busting content hash fingerprints
  • 🚆 run-scripts-utilOrganize npm package.json scripts into groups of easy to manage commands
  • 🚦 w3c-html-validatorCheck 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